[英]Assign an existing javascript array to a property in object notation
[英]assign property to object in array
我知道有很多这样的问题,这可能是重复的,但可以肯定的是,我尝试了为这些问题提供的每一个解决方案,但没有一个对我有用。
事情是这样的:
我有一个对象数组:
let data = [
{
id: 1,
year: 2022,
month: 11,
currentCount: 2460.9,
},
{
id: 2,
year: 2022,
month: 9,
currentCount: 2481.4,
},
{
id: 3,
year: 2022,
month: 2,
currentCount: 2521.1,
}
]
我想遍历数组并为每个 object 添加一个新属性。我尝试了很多不同的方法(forEach、for-loop 等),但我最近的尝试是这个:
data.map((item, index) => {
if (prevCount === undefined) {
//do some things here
} else {
//do some things here
//the new property i want to add
let newProperty = "foo"
//some methods i tried
item.newProperty = "foo"
item[newProperty] = "foo"
let obj = {newProperty: "foo"}
let newObj = Object.assign(item, obj)
//do some things here
}
})
但最终什么也没有发生。 没有错误,也没有新属性。 我对这个有点疯狂,因为它看起来很简单......
任何帮助表示赞赏
编辑
将 map 更改为:
let newData = dataElec.map((item, index) => {
if (prevCount === undefined) {
prevCount = item.currentCount
return item
} else {
let meter = {foo: 'bar'}
return {...item, meter}
}
})
我的代码未添加 object 和属性(第一个红色框)。 我不知道他们来自哪里。 object“_doc”(第二个红框)的内容/属性应与“仪表”object 在同一级别。
我可以使用这样的结构,但我想要一个干净的数组。 我想知道其他对象是如何进入我的数组的……
再次感谢您的帮助。 谢谢
prevCount
可能存在问题。 除此之外,你做对了。 尝试在map
调用后记录data
。 但是,当直接修改数组中的项目时,请使用 forEach 而不是 map。
data.forEach(item => {
item.foo = 'bar'
})
如果您想要一个已更改内容的重复数组,请使用 map。 这将返回一个新数组,其中每个 object 添加了键“foo”。
data.map(item => {
return { ...item, foo: 'bar' }
})
let data = [
{
id: 1,
year: 2022,
month: 11,
currentCount: 2460.9,
},
{
id: 2,
year: 2022,
month: 9,
currentCount: 2481.4,
},
{
id: 3,
year: 2022,
month: 2,
currentCount: 2521.1,
}
];
data = data.map((item, index) => {return {...item,foo:"bar"}})
console.log(data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.