Угловой / Javascript поисковый массив для ключа объекта

0

В целях примера давайте получим следующий объект:

var myobj = {id: 1, text: 'hello world', user_id: 5}

Теперь давайте скажем, что у нас есть массив:

var objectContainer = []

И мы наполняем этот объект Контейнером x числом myobj

Теперь мы хотим найти myobj, для которого значение id установлено равным 30

Вы можете использовать цикл, но в худшем случае вам придется перебирать весь массив, прежде чем находить свое значение.

Таким образом, мой вопрос заключается в том, что JaVaScript имеет функцию для этих ситуаций или же AngularJs предоставляет дополнительные помощники для решения этой проблемы?

Теги:
arrays

3 ответа

1
Лучший ответ

У вас много разных решений:

  1. 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; });

  2. Угловой фильтр: https://docs.angularjs.org/api/ng/filter/filter

  3. Если ваши идентификаторы уникальны, вы также можете использовать карту вместо массива:

Пример:

var myobj = {id: 1, text: 'hello world', user_id: 5};

var objectContainer = {};

objectContainer[myobj.id] = myobj;  

и т.д

  • 0
    find это es6. Также вы должны предоставить английские ссылки на StackOverflow.
  • 0
    Действительно, но вы все равно можете предоставить реализацию find .
0

Также вы можете использовать мое решение поиска объектов в массиве. Но все же он будет перебирать все элементы массива.

0

Ваше значение 'x' является индексом массива. Поэтому objectContainer [29] должен указывать на myobj в 30-й позиции.

  • 0
    Да, это было бы правдой, если вы поставите их в хронологическом порядке, но если вы добавите их наугад, это не будет
  • 0
    попробуйте Array.findIndex ("то, что вы хотите найти);

Ещё вопросы

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