Javascript 将特定数组元素复制到现有对象(覆盖)
我有以下对象Javascript 将特定数组元素复制到现有对象(覆盖),javascript,Javascript,我有以下对象 var obj1 = [ { "id": 1373744172, "name": "Run", "distance": 6051.8, "date": "2018-01-24T16:43:09Z", }, { "id": 1370355715, "name": "Swim", "distance": 1043, "date": "
var obj1 =
[
{
"id": 1373744172,
"name": "Run",
"distance": 6051.8,
"date": "2018-01-24T16:43:09Z",
},
{
"id": 1370355715,
"name": "Swim",
"distance": 1043,
"date": "2018-01-22T21:10:28Z",
}
]
var dest =
[
{title: "Placeholder", body: "1900-01-01T00:00:00Z"}
]
我正试图覆盖基于obj1的dest,因此我应该以
[
{title: "Run", body: "2018-01-24T16:43:09Z"},
{title: "Swim", body: "2018-01-22T21:10:28Z"}
]
我已经研究了Object.assign和for in循环,但还没有找到正确的方法。e、 g
var obj1=
[
{
“id”:1373744172,
“名称”:“运行”,
“距离”:6051.8,
“日期”:“2018-01-24T16:43:09Z”,
},
{
“id”:1370355715,
“名称”:“游泳”,
“距离”:1043,
“日期”:“2018-01-22T21:10:28Z”,
}
]
var dest=
[
{标题:“占位符”,正文:“1900-01-01T00:00:00Z”}
]
assign(dest,{title:obj1.name,body:obj1.date});
log(JSON.stringify(dest))
您不需要对象。分配,使用数组.prototype.map
转换数组中的每个元素:
var obj1=
[
{
“id”:1373744172,
“名称”:“运行”,
“距离”:6051.8,
“日期”:“2018-01-24T16:43:09Z”,
},
{
“id”:1370355715,
“名称”:“游泳”,
“距离”:1043,
“日期”:“2018-01-22T21:10:28Z”,
}
];
var dest=obj1.map(e=>({title:e.name,body:e.date}));
控制台日志(dest)可以使用code>来保持相同的数组实例(如注释中所述),与array.map
结合使用来转换新元素。但是splice将新元素作为附加参数,因此在调用splice
时需要有点聪明:
let args = [0, dest.length].concat(obj1.map(e=>({title: e.name, body: e.date})));
dest.splice.apply(dest, args);
“例如”将代码放入问题中,而不仅仅是链接。链接腐烂,使问题(有时其答案,可能不在这里)对未来的人们毫无用处,人们不应该去场外帮助你。提出一个问题,最好使用堆栈片段(工具栏按钮)使其可运行()。更多:您真的想更改dest
引用的数组,还是想要一个新数组?(在前一种情况下,对旧数组的其他引用将看到更新;在后一种情况下,它们不会看到更新。)@t.J.Crowder question已更新,链接已保存,谢谢。@Richard yes我确实想更新dest