javascript - 获取嵌套对象 - 但标识符是所需对象的一部分

标签 javascript arrays json

如何从选定文档中获取嵌套对象?

如果这是我的文档,我通过 Collection.findOne({ _id: 'dZXr2Pg7Ak4M5aYWF'}) 获得...

{
    "_id" : "dZXr2Pg7Ak4M5aYWF",
    "points" : [
        {
            "id" : "Gwf5BzorXyYBZSEzK",
            "coordinates" : [
                433,
                215
            ],
            "content" : "anything"
        },
        {
            "id" : "iwSM98W5PD87BtcLa",
            "coordinates" : [
                666,
                186
            ]
        }
    ]
}

...我需要获取id为Gwf5BzorXyYBZSEzK的点的完整数据。所以我的结果应该是这样的:

result = {
    "id" : "Gwf5BzorXyYBZSEzK",
    "coordinates" : [
        433,
        215
    ],
    "content" : "anything"
}

最佳答案

您可以简单地过滤points数组,使用 Array.prototype.filter ,像这样

console.log(data.points.filter(function(obj) {
  return obj.id === "Gwf5BzorXyYBZSEzK";
})[0]);
// { id: 'Gwf5BzorXyYBZSEzK' coordinates: [ 433, 215 ],  content: 'anything' }

我们只从过滤结果数组中取出第一个元素。如果你想获取所有具有特定id的元素,那么只需删除下标即可。

<小时/>

如果您的环境支持ECMAScript 2015's Arrow functions ,那么你可以写成相同的

console.log(data.points.filter((obj) => obj.id === "Gwf5BzorXyYBZSEzK")[0]);

关于javascript - 获取嵌套对象 - 但标识符是所需对象的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33951765/

相关文章:

javascript - $.getJSON 无法解析数组

javascript - 国际化翻译 fnando

javascript - 在 nestjs guard 中使用路径参数

javascript - 使用 jQuery 的延迟链接 ajax 请求

javascript - 我需要使用什么语法来将临时数组添加到等同于通用字符串列表的对象成员?

c - 二维数组的动态 malloc

c - 为什么我的循环没有在我预期的时候退出?

javascript - Jest - React 组件中的模拟粗箭头功能

json - 无法从 API 解码 JSON 数据

python - 如何使用 bs4 获取多个嵌套的 div 值并以 json 格式输出?