gpt4 book ai didi

javascript - 在 JS 中扩展和合并两个数组(包含对象)

转载 作者:行者123 更新时间:2023-11-30 05:47:52 25 4
gpt4 key购买 nike

所以我有数组 A:

   var arrA = [{
name: 'twitter',
location: 0,
hidden: false,
href: "https://twitter.com/i/connect"
}, {
name: 'medium',
location: 1,
hidden: false,
href: "https://medium.com/me/activity"
}
];

和数组B:

var arrB = [{
name: 'twitter',
location: 1,
hidden: false
}, {
name: 'medium',
location: 0,
hidden: false
}
];

我怎样才能得到一个看起来像这样的数组:

var newArr = [{
name: 'twitter',
location: 1,
hidden: false,
href: "https://twitter.com/i/connect"
}, {
name: 'medium',
location: 0,
hidden: false,
href: "https://medium.com/me/activity"
}
];

所以,这里有两件事,1. location 值取自 arrB,而不是 arrA,2. newArr 的对象现在包含 href 键,取自 arrA

所以我需要第二个数组的值,但是新的键是从第一个数组维护的。

我可以使用 underscore.js 函数执行此操作吗(我现在正在使用 _.extend,但如果它是新的,它不会维护来自 arrA 的 key )?

最佳答案

您可以连接两个数组并使用 Alasql 选择适当的属性图书馆:

var res1 = alasql('SELECT arrA.name, arrB.location, arrA.href, arrB.hidden \
FROM ? arrA JOIN ? arrB USING name', [arrA,arrB]);

或 Underscore _.extend 版本:

alasql.fn.extend = _.extend.bind(_);
var res2 = alasql('SELECT COLUMN extend(arrA._, arrB._)
FROM ? arrA JOIN ? arrB USING name', [arrA,arrB]);

试试这些例子 at jsFiddle .

关于javascript - 在 JS 中扩展和合并两个数组(包含对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16828864/

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