Vuex和array.findIndex:找不到匹配的信息。

问题描述 投票:0回答:1

我似乎无法让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

如你所见,它找到了一个真值,因此应该返回对象数组的索引。

我真的很困惑,希望得到任何帮助。

EDIT:添加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
javascript arrays vue.js vuex
1个回答
0
投票

因为你忘记了 返回 回调条件

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);
  })

0
投票

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方法需要返回,否则将不会影响能力。
© www.soinside.com 2019 - 2024. All rights reserved.