功能样式中的分块对象(下划线/ Lodash)

And*_*tis 2 javascript functional-programming lodash

Lodash有一个很好的数组方法; 是否存在对象(关联数组)的等价物?必要的解决方案非常简单,但我只是好奇是否有更清晰的功能实现?

势在必行的解决方案:
将对象作为输入
返回具有size多个属性的对象数组

var chunk = function(input, size){
  var obj = {};
  var output = [];
  var counter = 0;
  for (var k in input) {
    if(!input.hasOwnProperty(k)){
      continue;
    }
    obj[k] = input[k];
    if (++counter % size === 0) {
      output.push(obj);
      obj = {};
    }
  }
  if (Object.keys(obj).length !== 0){
    output.push(obj);
  }
  return output;
};
Run Code Online (Sandbox Code Playgroud)

hom*_*mam 6

_.mixin({"chunkObj": function(input, size) {
    return _.chain(input).pairs().chunk(size).map(_.object).value();
}});

console.log(_.chunkObj({a:1,b:2,c:3,d:4,e:5}, 2))
Run Code Online (Sandbox Code Playgroud)

  • 只想添加,当前lodash它变成`return _.chain(input).toPairs().chunk(size).map(_.fromPairs).value()` (4认同)