@habrazhitel

Как осуществить поиск по массиву?

Имеется массив, допустим с такими с данными:
[{a:"word",b:"world"},{a:"2015",b:"people"}]
то есть каждая запись в массиве является объектом, их может быть сколько угодно. Так вот, как найти в каком по счёту значении массива находится слово "people"?
  • Вопрос задан
  • 2242 просмотра
Решения вопроса 1
@andreloster
Вопрос изначально задан бредово -_-
Если я правильно вас понял, то вот:
var array = [{a:"word",b:"world"},{a:"2015",b:"people"}];
var result = -1;
for(var i=0; i<array.length; i++) {
    for(var key in array[i]) {
        if(array[i][key] == "people")    result = i;
    }
    if(result > -1)    break;
}

document.write(result);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
barkalov
@barkalov
Специального метода поиска по дереву в Javascript не существует.
Вам нужно рекурсивно обходить дерево (в ширину или в высоту, не важно) и проверять каждое значение.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
тут проще нестандартное решение использовать:
1. засплитиь по символу "," (запятая)
2. взять остаток от деления найденного элемента на 2 (кол-во элементов в подмассиве)
В итоге будет один массив из 4-х элементов
(3-й: 2015) и 4-й (people-вхождение) - нужный:
2015: 3%2===1 - значит он 1-й.
people: 4%2===0 - значит он 2-й.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы