这是我的数组:

  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/

10-11 02:54