[英]How to add to each object in an array a key-pair value based on each objects id?
[英]TypeScript- How to add a Key Value pair to each object in an Array?
我有一个日期数组和一个对象数组。 我想将日期作为键值对{"Date": "10-12-18"}
添加到对象数组中。
dates
:
["10-12-18", "10-13-18", 10-14-18"]
data
:
[
{"name":"One", "age": "4"},
{"name":"Two", "age": "5"},
{"name":"Three", "age": "9"}
]
我想要...
[
{"name":"One", "age": "4", "Date": "10-12-18"},
....
如何在TypeScript中做到这一点? 我已经习惯了普通的JavaSCript,无法正确使用它。
到目前为止,我有:
for (let idx of data){
data[idx].date = dates[idx]
}
谢谢!!
您的代码出了什么问题,因为idx
将是对象,而不是您for...of
的索引。 使用简单的常规for
例如:
for(let idx = 0; idx < data.length; idx++) {
data[idx].date = dates[idx];
}
或使用forEach
循环一个数组并使用它提供的索引从另一个数组获取值:
data.forEach((obj, i) => obj.date = dates[i]);
const result = data.map(({ name, age }, index) => ({ name, age, date: dates[index] }));
只需将数组映射到结果即可。
在TS中,您可以像下面这样进行操作。
var data = [{ "name": "One", "age": "4" }, { "name": "Two", "age": "5" }, { "name": "Three", "age": "9" } ]; var dates = ["10-12-18", "10-13-18", "10-14-18"]; console.log(data.map((ob, i) => ({ ...ob, "Date": dates[i] })));
像这样:
let dates = ["10-12-18", "10-13-18", "10-14-18"];
let objs = [{"name":"One",
"age": "4"},
{"name":"Two",
"age": "5"},
{"name":"Three",
"age": "9"}
]
const result = objs.map((item, index) => {
item.Date = dates[index];
return item;
});
console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.