【发布时间】:2020-04-13 14:33:36
【问题描述】:
我在 javascript 中有两个数组
array1 = [{id: 4, value:'xyz'}, {id: 2, value:'pqr'}, {id: 5, value:'abc'}]
array2 = [
[{id: 5, value:'abc'}, {id: 4, value:'xyz'}],
[{id: 5, value:'abc'}, {id: 2, value:'pqr'}],
[{id: 4, value:'xyz'}, {id: 2, value:'pqr'}],
[{id: 2, value:'pqr'}, {id: 5, value:'abc'}]
]
array2 是对象数组的数组, 数组 2 中的所有这些数组首先应按照 array1 序列进行排序,然后如果该特定 id 不存在于该特定索引处,则应推送具有 null 的对象。
output = [
[{id: 4, value:'xyz'}, {id: null, value:null}, {id: 5, value:'abc'}],
[{id: null, value:null}, {id: 2, value:'pqr'}, {id: 5, value:'abc'}],
[{id: 4, value:'xyz'}, {id: 2, value:'pqr'}, {id: null, value:null}],
[{id: 4, value:'xyz'}, {id: 2, value:'pqr'}, {id: null, value:null}],
[{id: null, value:null}, {id: 2, value:'pqr'}, {id: 5, value:'abc'}]
].
这是我的代码
export const mapOrder = (array, order, key) => {
let arr = [];
array.sort((a, b) => {
let A = a[key];
let B = b[key];
if (order.indexOf(A) > order.indexOf(B)) {
return 1;
}
return -1;
});
if (order.length > 0) {
for (let i = 0; i < order.length; i++) {
for (let j = 0; j < array.length; j++) {
if (order[i] === array[j].UserId) {
arr.push(array[j]);
} else {
arr.push({ id: null, value: null})
}
}
}
array = arr;
}
return arr;
};
【问题讨论】:
-
什么不起作用?
-
@NinaScholz 我已经添加了代码
标签: javascript arrays node.js angular reactjs