В целях примера давайте получим следующий объект:
var myobj = {id: 1, text: 'hello world', user_id: 5}
Теперь давайте скажем, что у нас есть массив:
var objectContainer = []
И мы наполняем этот объект Контейнером x числом myobj
Теперь мы хотим найти myobj
, для которого значение id
установлено равным 30
Вы можете использовать цикл, но в худшем случае вам придется перебирать весь массив, прежде чем находить свое значение.
Таким образом, мой вопрос заключается в том, что JaVaScript
имеет функцию для этих ситуаций или же AngularJs
предоставляет дополнительные помощники для решения этой проблемы?
У вас много разных решений:
Javascript НАЙТИ: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find Пример: var myobject = objectContainer.find(function(value){ return value.id === 1; });
Угловой фильтр: https://docs.angularjs.org/api/ng/filter/filter
Если ваши идентификаторы уникальны, вы также можете использовать карту вместо массива:
Пример:
var myobj = {id: 1, text: 'hello world', user_id: 5};
var objectContainer = {};
objectContainer[myobj.id] = myobj;
и т.д
Также вы можете использовать мое решение поиска объектов в массиве. Но все же он будет перебирать все элементы массива.
Ваше значение 'x' является индексом массива. Поэтому objectContainer [29] должен указывать на myobj в 30-й позиции.
find
это es6. Также вы должны предоставить английские ссылки на StackOverflow.find
.