对象未被读取node.js(Object is not been read node.js)

编程入门 行业动态 更新时间:2024-10-25 03:20:41
对象未被读取node.js(Object is not been read node.js)

我有和对象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))

结果是[]

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

I have and object db_parsed

when I run console.log(JSON.stringify(db_parsed, null, 4))

the result is:

{ "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" } ] ] }

but when I run console.log(db_parsed.data.filter(obj => obj.age === 22))

the result is []

Why? What am i missing? How do I fix this?

最满意答案

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)) 
  
 

db_parsed.data is an array containing arrays.

That second level of arrays contains objects.

Your filter code is trying to treat those objects and being directly inside db_parsed.data instead of inside db_parsed.data[0], db_parsed.data[1] and db_parsed.data[2].

You could use reduce to concatenate all the second level of arrays into one, and then filter on that.

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)) 
  
 

更多推荐

本文发布于:2023-08-07 00:24:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1457924.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:未被   对象   node   read   Object

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!