【问题标题】:Insert missing data using Lodash使用 Lodash 插入缺失数据
【发布时间】:2014-10-17 16:21:16
【问题描述】:

如果我们想插入缺失的数据,最好使用哪个 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

【问题讨论】:

  • 使用 _.difference() 让它工作 :)

标签: json underscore.js lodash


【解决方案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))
// });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 2015-09-17
    相关资源
    最近更新 更多