javascript - 对象未被读取 node.js

标签 javascript arrays node.js object filter

我反对 db_parsed

当我运行 console.log(JSON.stringify(db_parsed, null, 4))

结果是:

{
    "data": [
        [
            {
                "name": "Me",
                "age": 23,
                "sex": "M"
            },
            {
                "name": "Wonderwoman",
                "age": 22,
                "sex": "F"
            }
        ],
        [
            {
                "name": "ALbert The Man",
                "age": 22,
                "sex": "M"
            }
        ],
        [
            {
                "name": "Leonard Johnson",
                "age": 23,
                "sex": "M"
            }
        ]
    ]
}

但是当我运行 console.log(db_parsed.data.filter(obj => obj.age === 22))

结果是[]

为什么?我错过了什么?我该如何解决?

最佳答案

db_parsed.data 是一个包含数组的数组。

第二层数组包含对象。

您的过滤器代码试图处理这些对象并直接在 db_parsed.data 中而不是在 db_parsed.data[0] 中,db_parsed.data[ 1]db_parsed.data[2]

您可以使用 reduce 将所有第二级数组连接成一个数组,然后对其进行过滤。

var db_parsed = {
  "data": [
    [{
        "name": "Me",
        "age": 23,
        "sex": "M"
      },
      {
        "name": "Wonderwoman",
        "age": 22,
        "sex": "F"
      }
    ],
    [{
      "name": "ALbert The Man",
      "age": 22,
      "sex": "M"
    }],
    [{
      "name": "Leonard Johnson",
      "age": 23,
      "sex": "M"
    }]
  ]
};

console.log(db_parsed.data.reduce((a,b) => a.concat(b), []).filter(obj => obj.age === 22))

关于javascript - 对象未被读取 node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50065975/

相关文章:

Javascript:如何从数组中清除未定义的值

ios - 数组中的多个项目给出符合编码的错误

python 锯齿数组运算效率

javascript - 在 webpack 中安装 CoffeeScript 库

javascript - 我可以像单元测试一样在 Node.js 中进行性能测试吗

javascript - 提前 react : Get the id of the element selected

javascript - 如何在href链接上使用js参数和 anchor (同一页面)

javascript - 由fabric.curvedText.js创建的弯曲文本不支持loadFromJSON函数

javascript - YouTube API — 未触发 'onYouTubePlayerReady()'

node.js - cy.readFile 导致超时?