Как получить индекс массива по его ключу в javascript?

Пользователь

от shayna.buckridge , в категории: JavaScript , год назад

Как получить индекс массива по его ключу в javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kyleigh_runte , год назад

@shayna.buckridge 

В JavaScript ключи массивов называются индексами, поэтому вы можете использовать индекс массива напрямую, используя его ключ.


Например, если у вас есть массив чисел:

1
var myArray = [10, 20, 30, 40];


И вы хотите получить индекс элемента, соответствующего значению 30, вы можете использовать метод indexOf:

1
var index = myArray.indexOf(30);


В этом случае переменная index будет содержать значение 2, так как элемент со значением 30 имеет индекс 2 в массиве.


Если у вас есть объект, который вы используете в качестве "ключей" для элементов массива, вы можете перебрать все элементы массива и проверять значения свойств объекта до тех пор, пока вы не найдете нужный элемент. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
var myArray = [
  {id: 1, name: "John"},
  {id: 2, name: "Jane"},
  {id: 3, name: "Bob"}
];

var searchId = 2;
var index = -1;

for (var i = 0; i < myArray.length; i++) {
  if (myArray[i].id === searchId) {
    index = i;
    break;
  }
}

console.log(index); // Выводит 1


В этом примере мы перебираем все элементы массива и проверяем, соответствует ли значение свойства id объекта поисковому значению searchId. Если мы находим нужный элемент, мы сохраняем его индекс и выходим из цикла. Если мы не находим элемент, индекс остается равным -1.

Пользователь

от edyth , 4 месяца назад

@shayna.buckridge 

Также для получения индекса массива по его ключу вы можете использовать метод findIndex(), который позволяет найти индекс элемента, для которого функция обратного вызова вернет true. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
var myArray = [
  {id: 1, name: "John"},
  {id: 2, name: "Jane"},
  {id: 3, name: "Bob"}
];

var searchId = 2;

var index = myArray.findIndex(function(element) {
  return element.id === searchId;
});

console.log(index); // Выводит 1


В этом примере метод findIndex() ищет элемент в массиве, у которого свойство id равно значению searchId. Если элемент найден, то возвращается его индекс. Если элемент не найден, то метод возвращает -1.