gpt4 book ai didi

javascript - 两个对象数组,需要根据另一个对一个数组进行排序

转载 作者:行者123 更新时间:2023-11-29 16:40:42 24 4
gpt4 key购买 nike

我有两个像这样的对象数组

var array1 = [
{
"key": 0,
"display": "hide",
},
{
"key": 1,
"display": "show",
},
{
"key": 2,
"display": "show",
},
]

var array2 = [
{
"key": 1,
"question": "some text here",
},
{
"key": 0,
"question": "Different text here",
},
{
"key": 2,
"question": "Even more different",
},
]

我需要重新排序 array1 以匹配 array2 中键的顺序,不仅更新键以匹配顺序,而且还需要更新显示值(因此移动/重新排序整个对象)

例如,在对 array1 进行排序以匹配 array2 键的顺序后,我预计 array1 会产生以下结果:

[
{
"key": 1,
"display": "show",
},
{
"key": 0,
"display": "hide",
},
{
"key": 2,
"display": "show",
}
]

我知道这可能是使用排序函数完成的,但我很难理解它在这种情况下如何工作。

最佳答案

您可以通过以下方式实现此目的:

var array1 = [ { "key": 0, "display": "hide", }, { "key": 1, "display": "show", }, { "key": 2, "display": "show", }];
var array2 = [ { "key": 1, "question": "some text here", }, { "key": 0, "question": "Different text here", }, { "key": 2, "question": "Even more different", }];

var keys = array2.map(el => el.key);
array1.sort((a, b) => keys.indexOf(a.key) - keys.indexOf(b.key));
console.log(array1);

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

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