javascript - 查询 JavaScript 父子对象

标签 javascript arrays typescript ecmascript-6

我有一个显示父子关系的 json 对象。

我觉得很难查询某个 child 。

例如这里的数据。

var parents =  [
    {
        name: 'Susan',
        children: [{
            name: 'Joe'
        }, {
            name: 'Sam'
        }, {
            name: 'Michael'
        }]
    }, 
    {
        name: 'Ted',
        children: [{
            name: 'Richard'
        }, {
            name: 'Brad'
        }]
    }
    ]

以一种优雅的方式,我希望能够根据父名称和子名称找到对象。

家长:苏珊 child :乔

以下是我在 C# 中尝试执行的 3 种查询类型

var parentQuery = parents.filter(parent=> parent.name == 'Susan');
var childQuery = parents.filter(parent=> parent.children.name == 'Joe');
var parentChildQuery = parents.filter(parent=> parent.name == 'Susan' && parent.children.name == 'Joe')

令我高兴的是,parentQuery 在 Javascript 中开箱即用。但是 childQuery 搜索不起作用。由于 parent 有一个内部数组,我不确定如何引用以查询属性。如下所示。

parent.children.name == 'Joe'

如有任何帮助,我们将不胜感激!

最佳答案

.children 是一个数组,没有 .name 属性。也许你的意思是其中之一

parents.filter(parent => parent.children[0].name == 'Joe');
parents.filter(parent => parent.children.every(child => child.name == 'Joe'));
parents.filter(parent => parent.children.some(child => child.name == 'Joe'));

关于javascript - 查询 JavaScript 父子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38671950/

相关文章:

javascript - 判断 iframe 是否已经加载

javascript - js 最后一个数组项未定义

javascript - 如何在 typescript 中使用 js 库?

typescript - 从类装饰器中访问注入(inject)的服务? typescript /NestJS

javascript - Phonegap 和 RaphaelJS 速度减慢

javascript - jQuery - 获取无序列表中特定 <li> 的数字位置/索引

javascript - 使用 javascript 将值插入数组

javascript - 在 Javascript 中搜索数组时如何修复输出 'undefined'

TypeScript 类型强制指定类型之一

JavaScript HTML5 : issue with drag-and-drop for a gmail-like upload interface