Найти объект по своему свойству в массиве объектов с угловым способом

У меня есть массив, как показано ниже

var myArray = [{'id':'73','name':'john'},{'id':'45','name':'Jass'}, etc.]

Теперь у меня есть id 73, как выбрать этот конкретный объект из массива. Я вижу, что я могу сделать это в jQuery легко с grep. Есть ли какой-нибудь угловой способ сделать это?

Поскольку большинство приложений для разработки приложений с угловыми всегда получают данные из массива объектов (в основном для таблицы), для этого должна быть вспомогательная функция?

Чтобы я мог изменять данные строки с идентификатором строки, обновляя массив объекта.

Я не хочу это связывать. Я хочу манипулировать данными и обновлять данные с помощью функции.

Например. У меня есть список таблиц. Если конечный пользователь отредактирует строку из таблицы, у меня есть идентификатор объекта, поэтому после того, как конечный пользователь ударил save, мне нужно обновить массив, а затем вернуться к списку таблиц.

Ответы

Ответ 1

вы можете использовать угловой filter https://docs.angularjs.org/api/ng/filter/filter

в вашем контроллере:

$filter('filter')(myArray, {'id':73}) 

или в вашем HTML

{{ myArray | filter : {'id':73} }}

Ответ 2

Как насчет простого JavaScript? Подробнее о Array.prototype.filter().

var myArray = [{'id': '73', 'name': 'john'}, {'id': '45', 'name': 'Jass'}]

var item73 = myArray.filter(function(item) {
  return item.id === '73';
})[0];

// even nicer with ES6 arrow functions:
// var item73 = myArray.filter(i => i.id === '73')[0];

console.log(item73); // {"id": "73", "name": "john"}

Ответ 3

Для полного ответа MB, если вы хотите получить доступ к определенному атрибуту этого объекта, уже отфильтрованного из массива в вашем HTML, вам придется сделать это следующим образом:

{{ (myArray | filter: {'id':73})[0].name }}

Таким образом, в этом случае он будет печатать john в HTML.

С уважением!

Ответ 4

Эффект, который работает для меня, следующий

$filter('filter')(data, {'id':10})