gpt4 book ai didi

javascript - 连接对象中相同的属性值

转载 作者:行者123 更新时间:2023-11-28 19:01:36 26 4
gpt4 key购买 nike

我有一个对象数组,我想知道连接相似属性中的值的最佳方法,例如

arr:[
{obj:{obj_type:1, obj_foo:"joe"}},
{obj:{obj_type:2, obj_foo:"developer"}},
{obj:{obj_type:1, obj_foo:"kevin"}},
{obj:{obj_type:2, obj_foo:"architect"}}
]

我需要连接相同 obj_type 属性的属性值。预期结果应该是:

arr:[
{obj:{obj_type:1, obj_foo:"joe|kevin"}},
{obj:{obj_type:2, obj_foo:"developer|architect"}}
]

即值根据 obj_type 连接起来。

最佳答案

我认为这样的代码可能对您有帮助:

//Objects to work with:
var arr = [{obj:{obj_type:1, obj_foo:"joe"}},
{obj:{obj_type:2, obj_foo:"developer"}},
{obj:{obj_type:1, obj_foo:"kevin"}},
{obj:{obj_type:2, obj_foo:"architect"}}];
//Map from obj_type to {obj: …} objects:
var map = {};
//Iterating arr:
for(var i = 0; i < arr.length; i++){
var o = arr[i], type = o.obj.obj_type;
if(type in map){
map[type].obj.obj_foo += '|' + o.obj.obj_foo;
}else{
map[type] = o;
}
}
//Putting map values to arr:
arr = [];
for(var key in map){
arr.push(map[key]);
}
//Done:
console.log(arr);

生成的输出如下所示:

[ { obj: { obj_type: 1, obj_foo: 'joe|kevin' } }, { obj: { obj_type: 2, obj_foo: 'developer|architect' } } ]

关于javascript - 连接对象中相同的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32437373/

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