2020-12-19 乐帮网
javascript
从JavaScript 的数组中删除一项,这个需求看着很简单,可是突然遇到了竟然一下子写不上来。对于入门级选手来说很可能是写成这下面样子的。
const array = [5, 8, 2, 5, 7, 9, 3, 10, 25, 7];
const removeValue = 7;
const newarr = [];
console.log('================3=======');
console.log(array);
for (let i = 0; i < array.length; i++) {
if (array[i] != removeValue)
newarr.push(array[i]);
}
console.log(newarr);
这个时候你还别笑,虽然看上去不咋地但是无意间就避免了一些坑,安全系数上还是不错的,但是当数据数量比较大时这种方法就不能使用了。
推荐使用indexOf + splice来实现
const array = [5, 8, 2, 5, 7, 9, 3, 10, 25, 7];
const removeValue = 7;
console.log('================1=======');
console.log(array);
const index = array.indexOf(removeValue);
if (index > -1) {
array.splice(index, 1);
}
console.log(array);
上面代码实现的是移除指定的元素,但是还有一个问题没有解决,它只移动了第一个元素,如果有多个 7 那么就漏掉了,于是可以改进如下:
const array = [5, 8, 2, 5, 7, 9, 3, 10, 25, 7];
const removeValue = 7;
console.log('================2=======');
console.log(array);
console.log(removeItem(array, removeValue));
function removeItem(arr, value) {
var i = 0;
while (i < arr.length) {
if (arr[i] === value) {
arr.splice(i, 1);
} else {
i++;
}
}
return arr;
}
综上所述,核心在于函数 splice
array.splice(index,howmany,item1,.....,itemX)
index 规定从何处添加/删除元素
howmany 可选。规定应该删除多少元素。必须是数字,但可以是 "0"
item1, ..., itemX 可选。要添加到数组的新元素
原创作品禁止转载!
相关文章:
关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力