gpt4 book ai didi

javascript - 匹配两个对象数组之间的特定属性,然后将一个值插入一个对象

转载 作者:行者123 更新时间:2023-11-30 09:43:51 25 4
gpt4 key购买 nike

我有两个对象数组,比如 -

var arrayOne = [{"Content":1, "ValueContent":2},{"Content":3, "ValueContent":4}]
var arrayTwo = [{"Ex": "x", "ValueNum":20,"Content_Key":3}, {"Ex":"y","ValueNum":10,"Content_Key": 1}]

我想将 arrayOne 中的 Content 值与 arrayTwo 中的 Content_Key 值匹配。如果它匹配更新 arrayTwo 与来自 arrayOneValueContent。所以更新后的数组看起来像 -

 var arrayTwo = [{"Ex": "x", "ValueNum":20,"Content_Key":3, "ValueContent":4}, {"Ex":"y","ValueNum":10,"Content_Key": 1, "ValueContent":2}]

关于如何做到这一点的任何线索?目前我可以匹配部分,但除此之外我就卡住了。

最佳答案

如果为此使用某种哈希,性能会得到优化。正如其他人所展示的,您可以为此创建一个对象,但这里有一个使用 ES6 Map 的解决方案,它作为 thisArg 传递给 forEach:

arrayTwo.forEach(function (el) {
el.ValueContent = this.get(el.Content_Key);
}, new Map(arrayOne.map(el => [el.Content, el.ValueContent])));

var arrayOne = [{"Content":1, "ValueContent":2},{"Content":3, "ValueContent":4}];
var arrayTwo = [{"Ex": "x", "ValueNum":20,"Content_Key":3}, {"Ex":"y","ValueNum":10,"Content_Key": 1}];

arrayTwo.forEach(function (el) {
el.ValueContent = this.get(el.Content_Key);
}, new Map(arrayOne.map(el => [el.Content, el.ValueContent])));

console.log(arrayTwo);

备注

您使用首字母大写的属性名称。您可能需要考虑以小写字母开头,因为有 a convention。为构造函数(或 ES6 中的类)的名称保留首字母大写。

关于javascript - 匹配两个对象数组之间的特定属性,然后将一个值插入一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39804606/

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