Как выбрать объекты из массива объектов с определенным атрибутом

1

У меня есть массив result2 объектов, и у каждого объекта есть атрибуты. Поэтому, если я вызываю console.dir(result3); в моей консоли я вижу Изображение 174551

Я бы солгал, чтобы сортировать мои объекты, например мне нужен объект с

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 и _graphem

  • 2
    пожалуйста, добавьте небольшую часть массива, который вы используете в буквальном синтаксисе.
Теги:
arrays
javascript-objects

1 ответ

1

Вы можете использовать фильтр Array.

Метод filter() создает новый массив со всеми элементами, которые проходят тест, реализованный предоставленной функцией.

Array.prototype.filter()

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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню