如何从具有特定属性的对象数组中选择对象

时间:2017-06-29 17:14:31

标签: javascript arrays javascript-objects

我有一个对象的数组 StaggeredGridLayoutManager mLayoutManager = new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL); yourRecyclerView.setLayoutManager(mLayoutManager); //set adapter to recyclerview ,每个对象都有属性。因此,如果我在控制台中呼叫result2,我会看到Example

我会骗我的对象,例如我需要对象

console.dir(result3);

我试过

sm[['_akzsilb'] === 'LV' 
sm ['_graphem'] === 'diphtong']

但它不起作用。我想这是正确的方向,因为如果我尝试一些东西,比如

const result3 = [];
for (let i = 0; i < result2.length; i++) {
  if (result2[i].sm[['_akzsilb'] === 'LV' && ['_graphem'] === 'diphtong']) {
    result3.push(result2[i]);
  }
}

它有效。所以我怎么能更深入地去做并且访问两者(我需要两者,所以它们都必须按对象存在)const result3 = []; for (let i = 0; i < result2.length; i++) { if (result2[i].sm) { result3.push(result2[i]); } } _akzsilb

1 个答案:

答案 0 :(得分:1)

您可以使用阵列过滤器。

  

filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。

Array.prototype.filter()

&#13;
&#13;
let arr = [{
    name: "Joe",
    rank: "Private",
    serialnum: 1
  },
  {
    name: "Bob",
    rank: "General",
    serialnum: 4
  },
  {
    name: "Kev",
    rank: "Private",
    serialnum: 6
  },
  {
    name: "Kel",
    rank: "Private",
    serialnum: 3
  }
];

let results = arr.filter(person => person.rank === "Private" && person.serialnum != 6);

console.log(results);
&#13;
&#13;
&#13;