gpt4 book ai didi

javascript - 如果 key 与 lodash、vanilla js 或 d3 相等,则合并两个 javascript 对象

转载 作者:行者123 更新时间:2023-12-02 16:20:05 25 4
gpt4 key购买 nike

我有 3 个类似的 javascript 对象。

var gdp = {
"city": city,
"gdp": [],
};

var income = {
"city": city,
"income": [],
};

var uRate = {
"city": city,
"uRate": [],
};

我有很多城市 (n=28),[] 是我的整数数据数组,每个城市的长度统一:gdp、收入、uRate

目标:将这些组合成每个城市的单个对象:

var finalData = {
"city": city,
"gdp": [],
"income": [],
"uRate": []
}

我尝试过以下的变体。

if ( ObjA.city == ObjB.city ) { Obj.city.metric = this.metric] };

或者,如果城市匹配,则将指标(gdp、收入或 uRate)添加到 finalData 对象中。

cities.forEach(function ( city ) {

var metrics = ['gdp', 'income', 'uRate'];

metrics.forEach(function ( metric ) {

if ( metric.city == city ) { // edit: removed i

var finalData = {
"city": city,
"gdp": [],
"income": [],
"uRate": []
};

}

})

return finalData; // edit: moved this per suggestion

};

下面是一个使用 $.extend() 和 jQuery 的类似示例:How to merge two object values by keys ,但我没有使用 jQuery,并且更喜欢 lodash、d3.js 或 vanilla js 解决方案。

谢谢。

最佳答案

对于任何从 Google 登陆这里的人来说,现在使用 Object.assign() 使用 vanilla JS 可以很容易地做到这一点。 .

这是一个零依赖,相当于接受的答案中的结果:

Object.assign({}, gdp, income, uRate);

请注意,这在 IE 中不起作用,但在 Edge 中可以polyfill不过也不算太重。

工作解决方案位于 https://jsfiddle.net/bLhk6x6a/1/

关于javascript - 如果 key 与 lodash、vanilla js 或 d3 相等,则合并两个 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23186187/

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