网站搜索

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] }));

只需将数组映射到结果。