поиск частичного совпадения в массиве

0

У меня такой длинный массив:

var wifiArr = {
  "results": {
    "fields": [
      "Name",
      "Address",
      "Suburb",
      "Latitude",
      "Longitude"
    ],
    "rows": [
      {
        "Name": "7th Brigade Park, Chermside",
        "Address": "Delaware St",
        "Suburb": "Chermside",
        "Latitude": -27.37893,
        "Longitude": 153.04461
      },
.
. total 55 of those
.
      {
        "Name": "Annerley Library Wifi",
        "Address": "450 Ipswich Road",
        "Suburb": "Annerley, 4103",
        "Latitude": -27.50942285,
        "Longitude": 153.0333218
      },

    ]
  }
}

Я пытаюсь найти каждое "Имя", "пригород" или "адрес", который содержит, например, "ann" в нем имя и возвращает с индексом этих элементов, относительно "строк". Именно поэтому я могу получить доступ к все подробности позже, используя

var wifis = wifiArr.results.rows;

// returned index
console.log(wifis[index].Latitude);

Я пробовал несколько разных вещей, но никто из них не работал, как мне хотелось (обычно они просто дают один индекс). Единственное, что я могу использовать, это простой Javascript и jQuery. Никаких других библиотек (как другие рекомендовали мне раньше).

Буду признателен за всю помощь, спасибо

  • 0
    Это не массив, а объект JavaScript (содержащий массивы). Кроме того: покажите нам, что вы пытались?
  • 0
    Хорошо, могу ли я найти мысль об этом объекте? или я должен как-то изменить это?
Теги:
arrays

1 ответ

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

Итак, если вы можете использовать jQuery, тогда вы можете попробовать с jQuery.grep. И в вашем коде

arr = jQuery.grep(wifiArr.results.rows, function(row, index) {
  return row.Name.indexOf('ann') > -1 
         || row.Address.indexOf('ann') > -1
         || row.Suburb.indexOf('ann') > -1;
});

Вот пример http://jsfiddle.net/ry5AC/1/

Кроме того, если вы поддерживаете более новые браузеры, вы можете использовать функцию фильтра. Связанная статья о MDN. Он вызывается с аргументом index;)

  • 0
    ура, это не совсем так, как я хотел, но я определенно могу работать с этим :)
  • 1
    Если вам нужен индекс, конечно, вы можете использовать функцию jQuery.inArray. Я только что обновил скрипку.
Показать ещё 1 комментарий

Ещё вопросы

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