2 개의 배열이 있습니다.
var one = ['da22', 'ye66', '17hy']
과
var two = [{publicID: 'da22', score: '2'}, {publicID: '17hy', score: '2'}, {publicID: 'ye66', score: '2'}]
나는 two
에 publicID
따라 주문을 받고 싶습니다 one
.
two = [{publicID: 'da22', score: '2'}, {publicID: 'ye66', score: '2'}, {publicID: '17hy', score: '2'}]
이를 위해 NodeJS에 내장 된 메소드가 있습니까?
나는 그것이 작동하지만 그다지 효율적이지 않습니다. 한 인덱스에서 다른 인덱스로 요소를 이동할 수있는 방법이 있습니다 moveFromTo(oldIndex, newIndex
.
for (var r=0; r<one.length; r++) {
if (one[r] != two[r]['publicID']) {
two.moveFromTo(one.indexOf(two[r]['publicID']), r)
r=-1; continue;
}
}
그러나 r=-1
일이 움직일 때 그것을 사용하는 것은 작동하지만 최고의 아이디어처럼 보이지 않습니다.
어떤 아이디어라도 감사하겠습니다.
많은 감사합니다.
이 작업은 sort()
및indexOf()
var one = ['da22', 'ye66', '17hy'];
var two = [{publicID: 'da22', score: '2'}, {publicID: '17hy', score: '2'}, {publicID: 'ye66', score: '2'}];
var result = two.sort(function(a, b) {
return one.indexOf(a.publicID) - one.indexOf(b.publicID);
})
console.log(result)
해당 개체에서 개체를 one
만들고 정렬 할 수도 있습니다 .
var one = ['da22', 'ye66', '17hy'];
var two = [{publicID: 'da22', score: '2'}, {publicID: '17hy', score: '2'}, {publicID: 'ye66', score: '2'}];
var o = one.reduce((r, e, i) => {return r[e]=i, r}, {});
var result = two.sort(function(a, b) {
return o[a.publicID] - o[b.publicID];
})
console.log(result)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다