这是我的数组:
const [arr, setArr] = React.useState([
{
"id": 1,
"barcode": "8851907264888",
"qty" : 1
},
{
"id": 2,
"barcode": "8857124022072",
"qty": 1
}
]);
这是我的功能: const hasBarcode = (arr, barcode) => arr.some(el => el.barcode === barcode);
const handleUpdate=()=>{
let x = 8851907264888;
for(let i = 0;i < arr.length;i++){
if(hasBarcode(arr[i], x) == true){
let newArr = [...arr];
newArr[i].qty = newArr[i].qty + 1;
setArr(newArr);
}
}
}
我的问题是在for loop
中,我想检查每个数组索引,如果每个索引都包含与barcode
相同的x
,我想为该特定索引添加qty + 1
。但是这里它显示为Cannot read property 'some' of undefined
错误 最佳答案
您将对象传递给hasBarcode()而不是数组时代码中的错误
你也可以这样
const handleUpdate = () => {
let x = 8851907264888;
let newArr = arr.map((obj) => {
if (obj.barcode && obj.barcode == x) {
obj.qty = obj.qty + 1;
}
return obj;
});
setArr(newArr);
};
关于javascript - ReactJS : How to check each of array index containing the value or not?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63150520/