PHP Laravel NGINX html css Bootstrap Python Symfony Apache Windows linux jquery Django ASP vanilla Slim vagrant docker Homestead MySQL Redis Git SVN ssh Root vim PhpStorm Pycharm sass less PHP Laravel android html css Vue Angular React NGINX html css Javascript

Javascript如何优雅地从数组中移除指定元素

原创

原创不易 ~ 转载请注明出处哦

今天我们一起来学习一下如何从一个Javascript数组中移除指定的元素。

首先我们先来创建一个数组:

var array = [1, 2, 3, 4, 5];

假设我们想将数组中的3移除,获得[1, 2, 4, 5]这个数组,那么逻辑很简单,找到3所对应的index,并将其剔除:

var index = array.indexOf(3);
if (index > -1) {
    array.splice(index, 1);
}

我们看到,indexOf函数给出了元素在数组中对应的index。我们再使用splice函数将其剔除出数组:

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

值得注意的是,splice函数第一个参数指的是操作开始的index,第二个参数指定要删除几个元素。
另外使用indexOf的时候,我们需要检查index是否大于0来确认检索的元素存在于数组之中。


好,现在我们突然不想删除这个元素了,我们想对原数组进行其他操作。

哎呀,但是原数组已经改变了,变成了[1, 2, 4, 5]。这该如何是好呢?

我们发现,使用splice来移除元素的时候,我们会改变原有的数组,那么如何才能保留原始数组呢?
这里我们使用array.filter函数来实现这个目的:

var newArray = array.filter(function(item) {
    return item !== 3;
});
console.log(newArray); //[1, 2, 4, 5]
console.log(array); //[1, 2, 3, 4, 5]

可以看到,我们的保留了原始数组。并且,这种办法使用了标准的Javascript函数,逻辑简单明了直观。


正在加载验证码......
请先完成验证