programing

Vuex와 array.findIndex: 일치하는 항목을 찾을 수 없습니다.

newsource 2022. 7. 31. 23:04

Vuex와 array.findIndex: 일치하는 항목을 찾을 수 없습니다.

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

보시는 바와 같이 truthy 값이 발견되므로 오브젝트 배열의 인덱스가 반환됩니다.

저는 정말 당황스러웠고 어떤 도움도 감사하게 생각합니다.

편집:
FindIndex의 MDN 예에서는 RETURN을 추가해도 RETURN이 없습니다.

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

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

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

콜백 내의 조건을 반환하는 을 잊어버렸기 때문에

어레이 #findIndex

여기에 이미지 설명 입력

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

let index = state.bag.findIndex((it) => {
    return it.id === item.id
    console.log(it.id,it.id===item.id,item.id);
  })
  console.log(index);
these ecma 6 methods require return otherwise it will not effect able

언급URL : https://stackoverflow.com/questions/61571305/vuex-and-array-findindex-cannot-find-a-match