gpt4 book ai didi

javascript - 使用按值删除元素的自定义方法扩展数组

转载 作者:行者123 更新时间:2023-11-30 17:07:44 30 4
gpt4 key购买 nike

我必须创建一个新的数组方法,调用它时会从数组中删除特定的“值”。它适用于数字,但是当我使用字符串时,它返回一个空数组...

Array.prototype.removeItem = function(value){
for(var key in this){
this.splice(this.indexOf(value), 1);
}
}

var arr = [1, 2, 1, 4, 1, 3, 4, 1, 111, 3, 2, 1, '1'];
console.log(arr);
arr.removeItem(1);
console.log(arr);

var arrSecond = ['hi', 'bye', 'hello' ];
console.log(arrSecond);
arrSecond.removeItem('hi');
console.log(arrSecond);

最佳答案

如果未找到 valueindexOf 将返回 -1。传递给 splice 的负开始从末尾开始计算。参见 ECMA-262 §15.4.4.14

因此,一旦您从数组中删除了值,之后您将删除最后一个成员。

更好的方法可能是这样的:

var index;
while ((index = this.indexOf(value)) > -1) {
this.splice(index, 1);
}

for..in 不应在此处使用,请考虑将 forEach 用于数组循环。

关于javascript - 使用按值删除元素的自定义方法扩展数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27628460/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com