开发者社区> 问答> 正文

如何在JavaScript中的多维对象/数组中查找值?

我有一个多维对象(基本上是一个数组):

Object = { 1 : { name : bob , dinner : pizza }, 2 : { name : john , dinner : sushi }, 3 : { name : larry, dinner : hummus } } 我希望能够在对象/数组中搜索键为“晚餐”的位置,并查看其是否与“寿司”匹配。

我知道jQuery具有$ .inArray,但它似乎不适用于多维数组。也许我错了。indexOf似乎也只能在一个数组级别上工作。

没有功能或现有代码吗? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 14:22:41 1135 0
1 条回答
写回答
取消 提交回答
  • 如果您有一个数组,例如

    var people = [ { "name": "bob", "dinner": "pizza" }, { "name": "john", "dinner": "sushi" }, { "name": "larry", "dinner": "hummus" } ]; 您可以使用filterArray对象的方法:

    people.filter(function (person) { return person.dinner == "sushi" }); // => [{ "name": "john", "dinner": "sushi" }] 在较新的JavaScript实现中,可以使用函数表达式:

    people.filter(p => p.dinner == "sushi") // => [{ "name": "john", "dinner": "sushi" }] 您可以搜索"dinner": "sushi"使用了map

    people.map(function (person) { if (person.dinner == "sushi") { return person } else { return null } }); // => [null, { "name": "john", "dinner": "sushi" }, null] 或一个 reduce

    people.reduce(function (sushiPeople, person) { if (person.dinner == "sushi") { return sushiPeople.concat(person); } else { return sushiPeople } }, []); // => [{ "name": "john", "dinner": "sushi" }] 我确定您可以将其概括为任意键和值!

    2020-02-08 14:22:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载