как найти индекс элемента массива - PullRequest
1 голос
/ 22 февраля 2020
var styles = ['btx btx1', 'btx btx2', 'btx btx3', 'btx btx4'];

$('#mst').on('click', function(){
    let a = $('#btx').attr('class');
    console.log(a);  // `btx btx2`
    let x = styles.findIndex(a);
    console.log(x);  // error
});

ошибка - Uncaught TypeError: btx btx2 is not a function

Я ожидаю 1 в результате

Ответы [ 2 ]

3 голосов
/ 22 февраля 2020

Использовать indexOf:

$('#mst').on('click', function(){
   let a = $('#btx').attr('class');
   console.log(a);  // `btx btx2`
   let x = styles.indexOf(a);
   console.log(x);  // error
});
1 голос
/ 23 февраля 2020

Если вы хотите использовать findIndex(), параметры должны быть function вместо определенного элемента c.

Синтаксис

array.findIndex(function(currentValue, index, arr), thisValue)

var styles = ['btx btx1', 'btx btx2', 'btx btx3', 'btx btx4'];

let a = 'btx btx2';
let x = styles.findIndex(function(currentValue, index, arr){
  return currentValue === a;
});

console.log(x);

Или используйте indexOf()

Метод indexOf () ищет в массиве указанный элемент и возвращает свою позицию.

var styles = ['btx btx1', 'btx btx2', 'btx btx3', 'btx btx4'];

let a = 'btx btx2';
let x = styles.indexOf(a);

console.log(x);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...