[英]Remove and update an array without mutation in Javascript
我有一个数组:
let originalArr = ['apple', 'plum', 'berry'];
如何在不改变originalArr
的情况下从此数组中删除“plum”?
我可以想到以下方法:
let copyArr = [...originalArr];
originalArr = copyArr.filter(item => {
return item !== 'plum';
});
您正在创建另外两个arrays:一个copyArr
和一个过滤数组。 两者都不需要,只创建过滤后的数组应该可以正常工作,例如:
setOriginalArr(
originalArr.filter(item => item !== 'plum')
);
例如,如果originalArr
在 state 中。
在数组上调用.filter
不会改变它被调用的数组——它返回一个新的、单独的数组,因此在 React 中使用是安全的,而无需事先克隆原始数组。
您可以使用 slice() 方法从/到特定索引中提取项目(没有原始数组的突变)
let originalArr = ['apple', 'plum', 'berry']; let sliced = originalArr.slice(1, 2) console.log(originalArr, sliced)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.