gpt4 book ai didi

javascript - 操作对象值并生成新对象

转载 作者:行者123 更新时间:2023-12-03 06:45:15 26 4
gpt4 key购买 nike

我有一个对象,它的 ID 作为键,对象数组作为值,我需要从中生成一个对象

数组

var bears = { 
"1" :
[
{ 'total_bears': 2, 'bear_id': 1, 'location': 'CA' },
{ 'bear_age': 100, 'bear_id': 1, 'location': 'CA' },
{ 'total_bears': 1, 'bear_id': 1, 'location': 'NM' },
{ 'bear_age': 10, 'bear_id': 1, 'location': 'NM' }
],
"2" :
[
{ 'total_bears': 1, 'bear_id': 2, 'location': 'CA' },
{ 'bear_age': 50, 'bear_id': 2, 'location': 'CA' }
]
};

结果

{ 'bear_id' : 1, 'locationCAtotal_bears' : 2, 'locationCAbear_age': 100, 'locationNMtotal_bears': 1, 'locationNMbear_age':  100}

{ 'bear_id' : 2, 'locationCAtotal_bears' : 1, 'locationCAbear_age': 50}

我有什么

for (var key in bears) {
var arr = bears[key];
var obj = {};
var new_arr = arr.map(function(item) {
if (item.location == 'CA') {
obj.bear_id = item.bear_id;
obj.locationCAtotal_bears = item.total_bears;
obj.locationCAbear_age = item.bear_age;
}
else if (item.location == 'NM') {
obj.bear_id = item.bear_id;
obj.locationNMtotal_bears = item.total_bears;
obj.locationNMbear_age = item.bear_age;
}

return obj
});
}

这是我尝试过的众多代码之一。我已经尝试过不同的东西,但仍然没有运气

最佳答案

使用Array#forEach Array#reduce 方法

var bears = {
"1": [{
'total_bears': 2,
'bear_id': 1,
'location': 'CA'
}, {
'bear_age': 100,
'bear_id': 1,
'location': 'CA'
}, {
'total_bears': 1,
'bear_id': 1,
'location': 'NM'
}, {
'bear_age': 10,
'bear_id': 1,
'location': 'NM'
}],
"2": [{
'total_bears': 1,
'bear_id': 2,
'location': 'CA'
}, {
'bear_age': 50,
'bear_id': 2,
'location': 'CA'
}]
};


var res = Object.keys(bears).map(function(k) {
return bears[k].reduce(function(obj, ele) {
Object.keys(ele).forEach(function(key) {
// set all property except location and bear//-id
if (key !== 'bear_id' && key !== 'location')
obj['location' + ele.location + key] = ele[key];
});
return obj;
// pass object with bear_id as initial value
}, {
bear_id: bears[k][0].bear_id
});
});

console.log(res);

关于javascript - 操作对象值并生成新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37767339/

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