(Во-первых, я читал вопросы и ответы здесь в течение длительного времени, но это мой первый пост.)Поиск индекса элемента массива в массиве объектов в JavaScript?
Я нашел решения, которые включают в себя запись вашей собственной функции для этого, но я должен верить есть встроенный способ сделать это.
Я работаю в JavaScript и есть массив пользовательских объектов, каждый из которых выглядит следующим образом:
{ prop1: "1", prop2: "blah", prop3: "news", prop4: "2", prop5: "1" }
{ prop1: "2", prop2: "foo", prop3: "news", prop4: "2", prop5: "1" }
{ prop1: "3", prop2: "bar", prop3: "news", prop4: "2", prop5: "1" }
{ prop1: "4", prop2: "hello", prop3: "news", prop4: "2", prop5: "1" }
Я хочу найти встроенный способ найти индекс массива одного из объектов, учитывая значение одного из его свойств (для этого примера, если бы я дал ему «prop2» и «bar», он вернул бы индекс 2). Было бы неплохо использовать .indexOf, как и следовало ожидать, но, видимо, с массивом пользовательских объектов, это не работает.
Я нашел код для своей собственной функции, которая отлично работает, но в моем упрямстве я убежден, что для этого нужно только встроенный способ. В этом проекте я делаю много вещей в jQuery, так что это абсолютно вариант. Какие-либо предложения?
Посмотрите на Backbone.js. Вы создаете модели для своей схемы данных и создаете коллекции из них, которые вы можете запросить. –
Я не верю, что есть собственные средства для выполнения запросов JSON без написания вашей собственной функции (например, пример @ scrblnrd3) или использования библиотеки. Этот вопрос задавался много раз разными способами. Примеры: http://stackoverflow.com/questions/8670345/trouble-using-indexof-on-a-complex-array и http://stackoverflow.com/questions/8668174/indexof-method-in-an-object- array –
Также имейте в виду, что indexOf предназначен для использования в собственных типах JavaScript, а не для объектов/сложных типов. Технически индекс indexOf * работает так, как ожидалось. При всем моем уважении, я считаю, что ваши ожидания ошибочны. –