Javascript 将整数数组映射到对象数组
我有一个嵌套的对象数组,需要在其中格式化每个对象中的属性Javascript 将整数数组映射到对象数组,javascript,arrays,multidimensional-array,momentjs,lodash,Javascript,Arrays,Multidimensional Array,Momentjs,Lodash,我有一个嵌套的对象数组,需要在其中格式化每个对象中的属性 const myMap = { '1': [ { date: '2016-03-10T00:00:00', location: 'NV' }, { date: '2016-03-10T00:00:00', location: 'WV' }, { date: '2016-03-10T00:00:00', location: 'CA' } ], '2': [ { date: '2016-03-10T
const myMap = {
'1':
[ { date: '2016-03-10T00:00:00', location: 'NV' },
{ date: '2016-03-10T00:00:00', location: 'WV' },
{ date: '2016-03-10T00:00:00', location: 'CA' } ],
'2':
[ { date: '2016-03-10T00:00:00', location: 'NJ' },
{ date: '2016-03-10T00:00:00', location: 'PA' } ],
'3':
[ { date: '2016-03-10T00:00:00', location: 'WA' },
{ date: '2016-03-10T00:00:00', location: 'NH' },
{ date: '2016-03-10T00:00:00', location: 'CA' } ]
}
我目前使用lodash和moment.js编写了这段代码
var _ = require('lodash')
var moment = require('moment')
_.map(myMap["date"], (a) => { moment(a).format('DD MMM YYYY') })
console.log(myMap)
// []
它当前返回一个空数组,如何在不更改格式的情况下格式化每个日期?由于您处理的是
对象,并且希望更改其中的值,因此需要使用Lodash的.mapValues()
函数(.map()
用于数组)
constmymap={
'1':
[{日期:'2016-03-10T00:00:00',地点:'NV'},
{日期:'2016-03-10T00:00:00',地点:'WV'},
{日期:'2016-03-10T00:00:00',地点:'CA'}],
'2':
[{日期:'2016-03-10T00:00:00',地点:'NJ'},
{日期:'2016-03-10T00:00:00',地点:'PA'}],
'3':
[{日期:'2016-03-10T00:00:00',地点:'WA'},
{日期:'2016-03-10T00:00:00',地点:'NH'},
{日期:'2016-03-10T00:00:00',地点:'CA'}]
};
函数格式化日期(arr){
return u.map(arr,formattate);//使用formattate映射数组的每个元素
}
函数formattate(data){//将数据复制并格式化到新对象以进行映射
让formattedData={};
formattedData.date=时刻(data.date).format('DD-MMM-YYYY');
formattedData.location=data.location;
返回格式化数据;
}
让result=\ mapValues(myMap,formatDates)//迭代对象中的每个键并更新值
控制台日志(结果)代码>
由于您正在处理一个对象,并且希望更改其中的值,因此需要使用Lodash的.mapValues()
函数(.map()
用于数组)
constmymap={
'1':
[{日期:'2016-03-10T00:00:00',地点:'NV'},
{日期:'2016-03-10T00:00:00',地点:'WV'},
{日期:'2016-03-10T00:00:00',地点:'CA'}],
'2':
[{日期:'2016-03-10T00:00:00',地点:'NJ'},
{日期:'2016-03-10T00:00:00',地点:'PA'}],
'3':
[{日期:'2016-03-10T00:00:00',地点:'WA'},
{日期:'2016-03-10T00:00:00',地点:'NH'},
{日期:'2016-03-10T00:00:00',地点:'CA'}]
};
函数格式化日期(arr){
return u.map(arr,formattate);//使用formattate映射数组的每个元素
}
函数formattate(data){//将数据复制并格式化到新对象以进行映射
让formattedData={};
formattedData.date=时刻(data.date).format('DD-MMM-YYYY');
formattedData.location=data.location;
返回格式化数据;
}
让result=\ mapValues(myMap,formatDates)//迭代对象中的每个键并更新值
控制台日志(结果)代码>