Javascript 如何使用值更新/分配“map”对象?
如何迭代对象数组并按预期返回新对象 在数组中有两个嵌套的对象。我想通过迭代这些对象来创建一个新对象,并返回新对象 我试过这样做,但不起作用:Javascript 如何使用值更新/分配“map”对象?,javascript,javascript-objects,Javascript,Javascript Objects,如何迭代对象数组并按预期返回新对象 在数组中有两个嵌套的对象。我想通过迭代这些对象来创建一个新对象,并返回新对象 我试过这样做,但不起作用: const props = datas.map(data => { props.data.bd.locale = data; }, {}); //new object required 如果我理解正确,您希望从对象数组创建对象。在这种情况下,您可以这样做: const props = datas.reduce((total, dat
const props = datas.map(data => {
props.data.bd.locale = data;
}, {}); //new object required
如果我理解正确,您希望从对象数组创建对象。在这种情况下,您可以这样做:
const props = datas.reduce((total, data) => {
total[data.id] = data;
return total;
}, {});
其中,total
是一个新对象。请记住使用唯一标识符等。这对我很有用:
const props:any = {}
datas.map(data => {
var label = data.bd.locale;
return props[label] = data;
});
您可以使用reduce创建一个新对象
const props = datas.reduce((acc, data) => {
acc[data.bd.locale] = data;
return acc
}, {});
console.log(props);
或者干脆利用forEach
const props = {}
datas.forEach((acc, data) => {
props[data.bd.locale] = data;
});
假设你有:
const数据=[
{
fname:“简”,
名字:“丹麦”,
说明:{
眼睛:“蓝色”,
皮肤:“苍白”
}
},
{
fname:“约翰”,
名称:“doe”,
说明:{
眼睛:“黑色”,
皮肤:“棕色”
}
}
]
然后你想把他们所有的眼睛
变成“绿色”:
const props=datas.map(项=>{
const temp={…item,description:{…item.description,眼睛:“绿色”}
返回温度
})
您将得到以下结果:
const数据=[
{
fname:“简”,
名字:“丹麦”,
说明:{
眼睛:“绿色”,
皮肤:“苍白”
}
},
{
fname:“约翰”,
名称:“doe”,
说明:{
眼睛:“绿色”,
皮肤:“棕色”
}
}
]
这样,您就不会改变数据的值,同时,您也会创建一个改变后的数据实例
或者,如果您没有使用嵌套对象,请假设:
const数据=[
{
fname:“简”,
名字:“丹麦”
},
{
fname:“约翰”,
名称:“doe”
}
]
然后你想把他们所有的lname
改成awesome
:
const props=datas.map(项=>{
const temp={…项,lname:'awesome'}
返回温度
})
您能提供示例数据吗?你得到了什么,你想把它交给什么?这是我的尝试:我同意,我在这里不清楚。只是我需要使用对象数组name value创建一个新对象您期望的输出是什么?由于该数组在(未包含)示例中不包含任何嵌套对象,因此您创建了一个循环引用。@3gwebtrain:请用示例数据更新您的问题。