繁体   English   中英

JSON和angularjs。 按ID过滤数组(而不是按索引过滤)

[英]JSON & angularjs. Filter an array by ID (and not by index)

如何在不使用索引的情况下通过元素(在本例中为id)过滤此JSON?

     ABC: [{
 ID: home,
 elementsHome: [
       {
       el1: x,
       el2: y},
       {
       el3: d,
       el4: s}]
  },
  {
  ID: payments,
  elementsPaymets: etc...
  }];

像这样的ng-repeat的html不起作用:ng-repeat:ABC.element2 |中的项目 filter:{id:“good”}。 唯一的方法是用ABC [0]重写ABC,但这是我想要避免的。

谢谢

ABC.filter(function(item) {
  return item.id === 'whatever you want to check'
})

Array.prototype.filter迭代一个数组,并根据您提供的函数返回一个新的过滤数组。 该函数接收数组项,索引和数组作为参数。 您的函数必须返回true或false。 如果迭代返回true则保留,如果返回false,则删除它。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter


编辑

听起来你实际上是在尝试在数组中找到一个项目并访问它上面的属性。 所以如果你知道你的身份:

var curId = 'HOME'

然后你可以找到具有该id的项目:

var item = ABC.find(function(item) {
  return item.id === curId
})

如果匹配,您可以访问所需的密钥:

item && item['elements' + curId.substr(0, 1) + curId.substr(1).toLowerCase()]
_.filter(ABC, { 'id': 'good' });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM