使用筛选方法后无法修改数组中对象的属性



我有两个对象数组(相同(:第一个(artificiesToAdd[](可以包含0个或多个对象,第二个(newFilter[](也可以根据用户执行的搜索包含0到几个对象。

目标是,对于包含在artificiesToAdd[]数组中的每个对象,我检查这个对象是否也存在于newFilter[]数组中。如果是这样,我需要更新"qtyToAdd"属性,以指示最初在我的第一个数组中的数量。

不幸的是,我得到了这个错误:

'Uncaught TypeError: Cannot add property qtyToAdd, object is not extensible'

我的理解是,这个数组不能修改,因为它在引用中,但我对此不确定,也不知道如何解决它?我应该创建另一个数组并在里面推送所需的项目吗?

错误发生在以下特定行:newFilter[artIndex].qtyToAdd=item.qty;

const handleFilter = (event: any) => {
const searchWord: string = event.target.value;
const newFilter = artifices.filter((value) => {
return value.codeGF.toUpperCase().includes(searchWord.toUpperCase());
});
// Now let's add ART who had a qty
if (artificesToAdd.length > 0) {
let artIndex: number;
artificesToAdd.forEach(function (item) {
artIndex = newFilter.findIndex((i) => i.id === item.id);
if (artIndex === -1 || artIndex === undefined) return;
console.log(newFilter[artIndex]);
newFilter[artIndex].qtyToAdd = item.qty;
});
}
setFilteredArtifices(newFilter);
};

这可能是一个范围,但请尝试更改:"const newFilter=";对此:";让newFilter=";

最新更新