使用lodash的递归循环

时间:2017-03-08 23:49:54

标签: javascript lodash

我正在尝试使用lodash操纵n级深度数组/对象。递归映射函数或使用循环不是一个完美的解决方案。

我有像这样的示例对象,在键上,它可以是数组或对象。我想在一个单一的操作键值中使用循环它是繁琐的方式。我是否可以使用lodash操作来将值完全更改为布尔值或其他内容。

var a = {key1:true, key2:true, key3:[{key1:true, key5:true}], key6:true};

1 个答案:

答案 0 :(得分:4)

您可以使用cloneDeepWith来获得相同的结果。

var result = _.cloneDeepWith(a, function(v) {
  if(!_.isObject(v)) {
    return false;
  }
});



var a = {
  key1: true,
  key2: true,
  key3: [{
    key1: true,
    key5: true
  }],
  key6: true
};

var result = _.cloneDeepWith(a, function(v) {
  if(!_.isObject(v)) {
    return false;
  }
});

console.log(result);

body > div { min-height: 100%; top: 0; }

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
&#13;
&#13;
&#13;