1

我正在尝试格式化数组中的对象属性。我遇到了一些麻烦,因为以下代码会引发以下错误,但反应原生会引发 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不触及对象其余部分的情况下将其更改为格式化数据?实际上有很多我想传递的变量,并且不认为将每个变量单独分配给一个新对象是最好的。

我该怎么办?任何帮助/提示表示赞赏!

4

1 回答 1

1

map通过使用几个s ,您似乎使任务过于复杂。

如果您简化问题,您应该能够做到这一点:

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);
于 2017-04-03T05:59:36.920 回答