重新格式化映射值并使用扩展语法更新
Reformatting map values and updating with spread syntax
我正在尝试格式化数组中的对象属性。我遇到了一些麻烦,因为以下代码抛出以下错误,但本机反应抛出 TypeError: In this environment the sources for assign MUST be an object.This error is a performance optimization and not spec compliant. <<< path/to/project/node_modules/react-native/packager/src/Resolver/polyfills/polyfills.js
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 formatDate = (data) => {
const formattedDate = moment(data['event.start_date']).format('DD MMM YYYY');
return { ...data, data['event.start_date']: formattedDate } };
}
const formatDates = (arr) => { return _.map(arr, formatDate) }
let result = _.map(objArr, formatDates);
如何在不触及对象其余部分的情况下将 event.date
更改为格式化数据?实际上,我想传递许多变量,并且不认为将每个变量单独分配给一个新对象是最好的。
我该怎么办?感谢任何帮助/提示!
您使用多个 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);
我正在尝试格式化数组中的对象属性。我遇到了一些麻烦,因为以下代码抛出以下错误,但本机反应抛出 TypeError: In this environment the sources for assign MUST be an object.This error is a performance optimization and not spec compliant. <<< path/to/project/node_modules/react-native/packager/src/Resolver/polyfills/polyfills.js
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 formatDate = (data) => {
const formattedDate = moment(data['event.start_date']).format('DD MMM YYYY');
return { ...data, data['event.start_date']: formattedDate } };
}
const formatDates = (arr) => { return _.map(arr, formatDate) }
let result = _.map(objArr, formatDates);
如何在不触及对象其余部分的情况下将 event.date
更改为格式化数据?实际上,我想传递许多变量,并且不认为将每个变量单独分配给一个新对象是最好的。
我该怎么办?感谢任何帮助/提示!
您使用多个 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);