繁体   English   中英

删除和更新 Javascript 中没有突变的数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM