从对象图收集值的一行javascript?

从对象图收集值的一行javascript?,javascript,json,Javascript,Json,给定以下对象图: { "children": [{ "child": { "pets": [{ "pet": { "name": "fido" } }, { "pet": { "name": "fluffy" } } ] }

给定以下对象图:

{
  "children": [{
      "child": {
        "pets": [{
            "pet": {
              "name": "fido"
            }
          },
          {
            "pet": {
              "name": "fluffy"
            }
          }
        ]
      }
    },
    {
      "child": {
        "pets": [{
          "pet": {
            "name": "spike"
          }
        }]
      }
    }
  ]
}
用一行(或两行)来收集我孙子孙女的宠物的名字是什么?结果应该是[“fido”、“fluffy”、“spike”]

我不想为此编写自定义方法。。。我正在寻找类似jQuery在选择dom节点时的工作方式,您可以给它一个类似CSS的路径,然后它为您收集它们

我希望表达式路径看起来像“children-child-pets-pet-name”

LINQ-to-JavaScript(JSLINQ)是用JavaScript实现的LINQ-to对象的实现。它是使用一组构建在JavaScript数组对象之上的扩展方法构建的。如果您使用的是数组,那么可以使用LINQ到JavaScript

LINQ to JavaScript是一个开源项目,您可以从以下位置下载:

希望这有助于

linqtojavascript(JSLINQ)是用JavaScript实现的linqto对象的一种实现。它是使用一组构建在JavaScript数组对象之上的扩展方法构建的。如果您使用的是数组,那么可以使用LINQ到JavaScript

LINQ to JavaScript是一个开源项目,您可以从以下位置下载:

希望这有助于


如果你不想使用图书馆,这是我能想到的最简洁的写作方法

var Ar=[];
p.children.map(function(a){a.child.pets.map(function(a){Ar.push(a.pet.name)})});

如果你不想使用图书馆,这是我能想到的最简洁的写作方式

var Ar=[];
p.children.map(function(a){a.child.pets.map(function(a){Ar.push(a.pet.name)})});

我决定使用XPath,这类似于JSON的XPath。对于我的需求,LINQ似乎有点重,导致了更详细的语法,尽管它看起来更强大。如果我的需求发生变化,我可能会升级。

我选择了类似于JSON的XPath。对于我的需求,LINQ似乎有点重,导致了更详细的语法,尽管它看起来更强大。如果我的需求发生变化,我可能会升级。

感谢您的回复!不幸的是,我在寻找更直观的东西(为了维护目的,您理解…)感谢您的回复!不幸的是,我一直在寻找更直观的东西(为了维护的目的,你知道…)为什么这会被标记为垃圾邮件?@mmyers问得好。也许有人不喜欢LINQ for javascript的想法?@mmyers:我没有标记它,但我猜这是因为它用一个无关产品的名称签名。这到底为什么被标记为垃圾邮件?@mmyers问得好。也许有人不喜欢LINQ for javascript的想法?@mmyers:我没有标记它,但我想这是因为它是用一个无关产品的名称签名的。