Vuex и array.findIndex: не удается найти соответствие - PullRequest
2 голосов
/ 03 мая 2020

Я не могу заставить работать array.findIndex, и я уверен, что в массиве, который я ищу, должно быть совпадение, но findIndex всегда возвращает -1.

let index = state.bag.findIndex((it) => {
    it.id === item.id
    console.log(it.id,it.id===item.id,item.id);
  })
  console.log(index);

Я получаю следующий консольный журнал:

00SEEB0BASU900XS false 00SEEB0BASU900S index.js:48
00SEEB0BASU900S true 00SEEB0BASU900S index.js:48
00SEEB0BASU900M false 00SEEB0BASU900S index.js:48
00SEEB0BASU900L false 00SEEB0BASU900S index.js:48
00SEEB0BASU900XL false 00SEEB0BASU900S index.js:48
00SEEB0BASU900XXL false 00SEEB0BASU900S index.js:48
-1 index.js:50

Как видите, он находит истинное значение и, следовательно, должен возвращать индекс массива объектов.

Я действительно озадачен, и любая помощь приветствуется.

РЕДАКТИРОВАТЬ:
Добавление RETURN сработало, хотя только для моего пути обучения, в примере MDN для findIndex не было RETURN.

const fruits = ["apple", "banana", "cantaloupe", "blueberries", "grapefruit"];

const index = fruits.findIndex(fruit => fruit === "blueberries");

console.log(index); // 3
console.log(fruits[index]); // blueberries

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

let index = state.bag.findIndex((it) => {
    return it.id === item.id
    console.log(it.id,it.id===item.id,item.id);
  })
  console.log(index);
эти методы ecma 6 требуют возврата, иначе это не повлияет на
0 голосов
/ 03 мая 2020

Поскольку вы забыли вернуть условие внутри обратного вызова

Array # findIndex

enter image description here

let index = state.bag.findIndex((it) => {
    return it.id === item.id
    //console.log(it.id,it.id===item.id,item.id);
  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...