如果我们想插入缺失的数据,最好使用哪种Lodash功能?例如,我们的数据是
[
{ 'time' : '12:00', status : true },
{ 'time' : '01:00', status : true },
{ 'time' : '02:00', status : true },
{ 'time' : '03:00', status : true },
{ 'time' : '04:00', status : true },
{ 'time' : '23:00', status : true },
]
我想插入05:00到22:00
答案 0 :(得分:1)
var startNumber = 5;
var endNumber = 22;
var step = 1;
var originalArray = [
{ 'time' : '12:00', status : true },
{ 'time' : '01:00', status : true },
{ 'time' : '02:00', status : true },
{ 'time' : '03:00', status : true },
{ 'time' : '04:00', status : true },
{ 'time' : '23:00', status : true },
];
var getMappedItem = function(item) {
return {
time: item + ':00',
status: true
};
};
var newArray = originalArray.concat(_.range(startNumber, endNumber + 1, step)
.map(getMappedItem));
// newArray not contains the joint array of missing data.
// you can now use _.sortBy() to actually sort array with a function
// to determine how to sort it.
// for example _.sortBy(newArray, function(item) {
// return parseInt(item.time.substr(0,2))
// });