从字符串数组中移除字符串

Remove a string from string array

本文关键字:字符串 数组      更新时间:2023-09-26

我是JavaScript的初学者。

我有一个这样的字符串数组:123,432,123,543,123,123

我想从这个字符串中删除3dr数字。

我发现下面的函数从字符串数组中删除文本值,但它不工作的数组与重复的值在他们。

Array.prototype.removeByValue = function (val) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == val) {
            this.splice(i, 1);
            break;
        }
    }
} 

可以使用filter:

var ary = ['three', 'seven', 'eleven'];
ary = ary.filter(function(v) {
    return v !== 'seven';
});

和扩展数组

Array.prototype.remove = function(value) {
    return ary.filter(function(v) {
        return v != value;
    });
}
var ary = ['three', 'seven', 'eleven'];
ary = ary.remove('seven'),
console.log(ary)

请继续:

Array.prototype.removeByValue = function (val) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == val) {
            this.splice(i, 1); 
            i--; //Decrement after removing
            //No break
        }
    }
} 

更习惯的方式是this.splice(i--, 1),但这应该更清楚地说明它们发生的顺序。

var a = [1,2,1,1,2,2];
a.removeByValue(1);
a; //[2, 2, 2]

为了解决这个问题,我为每个元素添加了一个唯一的ID,如{A1;123,A2;432,A3;123,A4;543,A5;123,A6;123},在这种情况下,使用相同的函数查找特定元素要容易得多。