javascript - Reactjs:如何检查每个包含值的数组索引?
问题描述
这是我的数组:
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);
};
推荐阅读
- python - 类属性应该是树状的还是扁平的?
- sql-server - SSIS - 使用 SQL Server 架构名称作为查询和过程调用的变量
- menu - OpenCart 菜单从左到右自定义
- python - 如何使用 matplotlib 动画为数组选择设置动画?
- python - 仅删除 URL 中的空格
- angular - 使用 --watch 依次运行两个 Angular CLI 任务
- solr - 将 Solr Facets 合并为一个
- eclipse - 覆盖标记点击操作
- javascript - ScrollView 不会滚动(React Native)
- excel4node - excel4node:如何实现添加DataValidation“indriect”