javascript - lodash 深度嵌套数组过滤器

标签 javascript arrays underscore.js lodash

我有一个像这样的复杂嵌套对象数组,我必须返回一个基于 attributeScore > 90 的新数组(过滤器)。我将如何使用 javascript .filter 或 lodash _.find() 或 _.some 函数来完成此操作?

trucks:[
     {wheels:[
             {name:"xyz",
              mechanics: [
                     {engine:'50cc',
                     attributeScore:100},
                     {....} ,{...}
                    ]
              },
              {name:"gcd",
              mechanics: [
                     {engine:'80cc',
                     attributeScore:90},
                     {....} ,{...}
                    ]
              }, 
            ,{...}
         ]}
         ,{...}
      ]

我尝试过这样的过滤器

const fil = trucks.filter(function(item) {
    return item.wheels.some(function(tag) {
      return tag.mechanics.some(function(ques){
        return ques.attributeScore <= 25;
      });
    });
  });

但它返回一个空数组。我预期的返回数组类型应该是

trucks:[
     {wheels:[
             {name:"xyz",
              mechanics: [
                     {engine:'50cc',
                     attributeScore:100},
                     {....} ,{...}
                    ]
              },
            ,{...}
         ]}
      ]

感谢任何帮助!!

最佳答案

现在就试试这个,

var fill = trucks.map(function(item) {
    return item.wheels.map(function(tag) {
      return tag.mechanics.filter(function(ques){
        return ques.attributeScore == 100;
      });
    });
  });

关于javascript - lodash 深度嵌套数组过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49402140/

相关文章:

javascript - 通过 HTML 中的 onClick 将变量传递给外部 js 文件

javascript - promise 垃圾的解决/拒绝功能是否在解决/拒绝后被收集?

C++模板数组大小推导

javascript - 求数组之和 - Javascript

java - 我不断收到 ']' 预期错误 [Java]

underscore.js - Lodash 和 Underscore.js 的区别

javascript - jQuery 对 asp.net mvc 站点的依赖

javascript - 加载另一个API的数据的1个API

javascript - 将数组中的一项附加到一个 div

javascript - 使用下划线搜索数组中的 JSON 值