繁体   English   中英

TypeScript-如何将“键值”对添加到数组中的每个对象?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM