假设有两个对象数组,分别为arr1和arr2,其中arr1需要按照arr2中的某个键的值进行排序。
首先,我们可以使用Array.sort()方法来对arr1进行排序,该方法可以接收一个比较函数作为参数。
在比较函数中,我们可以使用Array.indexOf()方法来找到arr2中某个对象的索引位置,然后将该对象的键值对作为排序的条件。
下面给出示例代码:
const arr1 = [
{id: 1, name: 'John'},
{id: 2, name: 'Alice'},
{id: 3, name: 'Bob'}
];
const arr2 = [
{id: 2, order: 2},
{id: 3, order: 1},
{id: 1, order: 3}
];
arr1.sort((a, b) => {
const aIndex = arr2.findIndex(obj => obj.id === a.id);
const bIndex = arr2.findIndex(obj => obj.id === b.id);
return arr2[aIndex].order - arr2[bIndex].order;
});
console.log(arr1);
在上面的代码中,我们使用了findIndex()方法来查找arr2中对象的索引值,并使用该对象的order键值对进行arr1的排序。最后的结果是:
[
{id: 3, name: 'Bob'},
{id: 2, name: 'Alice'},
{id: 1, name: 'John'}
]