根据JavaScript中的另一个数组对对象数组进行排序
时间: 2024-02-09 22:09:08 浏览: 87
如果你要根据另一个数组对对象数组进行排序,你可以使用`Array.prototype.sort()`方法和`Array.prototype.findIndex()`方法来实现。以下是一个示例代码:
```javascript
const arr1 = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
const arr2 = [3, 2, 1];
arr1.sort((a, b) => {
return arr2.findIndex(id => id === a.id) - arr2.findIndex(id => id === b.id);
});
console.log(arr1);
// Output:
// [
// { id: 3, name: 'Charlie' },
// { id: 2, name: 'Bob' },
// { id: 1, name: 'Alice' }
// ]
```
在这个示例中,我们首先定义了一个对象数组`arr1`和一个数字数组`arr2`。然后,我们使用`sort()`方法对`arr1`进行排序,其中回调函数返回`arr2.findIndex(id => id === a.id) - arr2.findIndex(id => id === b.id)`的结果,这意味着我们将根据`arr2`中元素的索引来比较`arr1`中的元素。我们使用`findIndex()`方法查找`a.id`和`b.id`在`arr2`中的索引。最后,我们将排序后的`arr1`输出到控制台上。
阅读全文