javascript - TypeScript - 如何向数组中的每个对象添加键值对?
我有一个日期数组和一个对象数组。我想将这些日期作为键值对 {"Date": "10-12-18"} 添加到对象数组中。
日期:
["10-12-18", "10-13-18", 10-14-18"]
数据:
[
{"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]
}
谢谢!!
答案#1
你的代码的问题是,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]);
答案#2
const result = data.map(({ name, age }, index) => ({ name, age, date: dates[index] }));
只需将数组映射到结果。
