JavaScript로 두 개의 배열이 있고 첫 번째 순서에 따라 배열을 다시 배열하고 싶습니다.두 개의 다른 배열을 기반으로 새 배열 만들기 (일치 값)
첫 번째 배열 : I를 다시 배열 후
var arrayTwo = [
{
"page_id" : "5",
"page_title" : "About"
},
{
"page_id" : "2",
"page_title" : "Home"
},
{
"page_id" : "4",
"page_title" : "Contact Us"
},
{
"page_id" : "1",
"page_title" : "Gallery"
},
];
:
var arrayOne = [
"5",
"1",
"2",
"4"
]
2 어레이 I 원할 arrayOne에 맞는 페이지 ID에 기초하여 재 배열 page_id를 기반으로 arrayTwo를 다시 정렬하려고하므로 두 번째 배열은 다음과 같이 보입니다.
var arrayTwo = [
{
"page_id" : "5",
"page_title" : "About"
},
{
"page_id" : "1",
"page_title" : "Gallery"
},
{
"page_id" : "2",
"page_title" : "Home"
},
{
"page_id" : "4",
"page_title" : "Contact Us"
},
];
나는이 시점에서 꽤 고생했다. 나는 여기에 많은 '솔류션'솔루션을 발견했지만, 작동하지 않는 것으로 보인다. 나는 for-loop를 사용하여 이것을 시도했지만 아무데도 가지 않았다. 나는 일반적으로 도움을 청하지 않겠지 만 나는 3 시간 동안 좋은 검색을 해왔다.
첫 번째 일치는 두 번째로 page_id
과 일치하므로 사용할 수있는 일치 항목이 있지만 앞에서 언급 한 것처럼 꽤 고생했습니다.
도움을 주시면 감사하겠습니다. 이제
var map = arrayTwo.reduce((a, b) => {
a[b.page_id] = b;
return a;
}, {});
우리가 쉽게 map
첫 번째 배열, 같은 수 있습니다 :
arrayOne.map(x => map[x]);
예를 들어 작업 -
이 솔루션은 완벽합니다. 감사! –
그냥 간단한 메모입니다. 어떻게 투표 할 수 있습니까? 나는 다른 사람들과 반대로 CD ..의 솔루션을 선택했기 때문에 그것이라고 생각합니다. CD의 솔루션은 가장 단순합니다. 이 커뮤니티는 쓰라린 엘리트 주의자입니다. 더 이상 질문 할 수 없습니다. –