многомерный поисковый индекс массива javascript

1

У меня есть массив в javascript. Я пытался искать индекс, но это очень неприятно. Внутри объекта есть объект, а внутри объекта есть массив как значение.

Вот как выглядит исходный код:

rows = [{"id":"id0","cell":["array1","array2"]},{"id":"id1","cell":["array3","array4"]}];

Я пробовал это:

var v = {cell:["array1","array2"]};
rows.indexOf(v)

А также есть переключатель:

<input type="radio" name='array' value="array1, array2">

jQuery здесь:

var i = $("input:checked").val().split(',');
rows.indexOf(i)

который имеет индексный результат -1

  • 0
    @ObsidianAge да, я использую split (), чтобы сделать значение массивом
Теги:
arrays
search
indexof

1 ответ

3

Попробуй это. Это функциональный подход, который проходит через каждый индекс в строках и возвращает true, если есть совпадение.

var rows = [{"id":"id0","cell":["array1","array2"]},{"id":"id1","cell":["array3","array4"]}];
var index = rows.findIndex(function(i) {
  return JSON.stringify(i.cell) == JSON.stringify(["array1","array2"])
});
console.log(index);

Выход должен возвращать 0. Причина, по которой нам нужно преобразовать оба объекта в JSON.strings, объясняется тем, как javascripts обрабатывает равенство двух объектов. Вы можете прочитать об этом здесь.

  • 0
    ["array2","array1"] в виду, что если бы массив был ["array2","array1"] он бы не совпадал.
  • 0
    как вызвать элемент оператора ячейки массива foreach?

Ещё вопросы

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