gpt4 book ai didi

javascript - 根据另一个对象数组的顺序对对象数组进行排序

转载 作者:行者123 更新时间:2023-11-28 17:31:31 25 4
gpt4 key购买 nike

我有两个对象数组,我需要将其中一个数组的顺序与另一个数组的顺序相匹配。这是一个例子:

const outOfOrderArray = [{field: 'foo'}, {field: 'bar'}, {field: 'bazz'}, {field: 'bizz'}];

const arrayInProperOrder = [{field: 'bizz'}, {field: 'bazz'}, {field: 'foo'}, {field: 'bar'}];

如何使 outOfOrderArrayarrayInProperOrder 中的对象顺序匹配?

最佳答案

与 @Faly 的解决方案相比,以下是如何在更少的循环中完成此操作。无需对数组进行排序。您只需循环 arrayInProperOrder 并从 outOfOrderArray 中查找匹配元素,以便后者按顺序排列。

const outOfOrderArray = [{field: 'foo'}, {field: 'bar'}, {field: 'bazz'}, {field: 'bizz'}];
const arrayInProperOrder = [{field: 'bizz'}, {field: 'bazz'}, {field: 'foo'}, {field: 'bar'}];

const newArray = [];

arrayInProperOrder.forEach(item => {
const original = outOfOrderArray.find(i => i.field === item.field);

if (original) {
newArray.push(original);
}
});

console.log(newArray);

如果您需要它,只需将 newArray 分配给 outOfOrderArray 即可。

关于javascript - 根据另一个对象数组的顺序对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50294140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com