javascript - 使用 lodash 的递归循环

标签 javascript lodash

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

我有这样的示例对象,关键是,它可以是数组或对象。我想使用单调乏味的循环方式一次操作键值到 false。我是否可以使用 lodash 将值完全更改为 bool 值或其他值。

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

最佳答案

您可以使用 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>

关于javascript - 使用 lodash 的递归循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42684157/

相关文章:

javascript - 对嵌套对象使用 Lodash countBy

javascript - 提取具有最大属性值的数组元素

javascript - 检测浏览器和操作系统版本

javascript - 合并对象并对单个属性求和javascript

javascript - 使用 lodash 进行无限深度搜索

Javascript 监听器捕获当前加载资源的 URL

javascript - 奇怪的 LoDash 行为

javascript - Backbone.js 嵌套模型

Javascript 对象工厂方法,将参数对象作为参数传递

javascript - 在 Shiny 的 R 应用程序上了解访客身份