我正在尝试格式化数组中的对象属性。我有一些麻烦,因为以下代码抛出以下错误,但反应原生抛出viewDidLoad
appDelegate
如何在不触及对象其余部分的情况下将didFinishlaunching
更改为格式化数据?实际上我想传递许多变量,并且不认为单独将每个变量分配给新对象是最好的。
我应该怎么做?任何帮助/提示赞赏!
答案 0 :(得分:1)
使用多个map
时,您似乎过度复杂化任务。
如果您简化了问题,您应该可以这样做:
const objArr = [
{ 'event.date': '2016-03-10T00:00:00', 'event.location': 'NV' },
{ 'event.date': '2016-03-10T00:00:00', 'event.location': 'WV' },
{ 'event.date': '2016-03-10T00:00:00', 'event.location': 'CA' }
];
const result = objArr.map((event) => ({
...event,
'event.start_date': moment(event['event.start_date']).format('DD MMM YYYY'),
}));
console.log(result);
答案 1 :(得分:0)
基于@fubar的回答。我们可以简单地使用delete
方法删除对象属性。
参考:http://perfectionkills.com/understanding-delete/
在此之前,我们必须使用临时变量来保存属性并将其格式化以供使用。代码继续你期望的结果:
const result = objArr.map((item) => {
var rawEventDate = item['event.date'];
delete item['event.date'];
return {
'event.date': moment(rawEventDate).format('DD MMM YYYY'),
...item
}
});
console.log(result);