首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串数组中删除字符串

从字符串数组中删除字符串
EN

Stack Overflow用户
提问于 2013-03-14 21:23:29
回答 3查看 358关注 0票数 0

我是JavaScript的初学者。

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

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

我发现下面的函数可以从字符串数组中删除文本值,但它不适用于其中包含重复值的数组。

代码语言:javascript
复制
Array.prototype.removeByValue = function (val) {

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

任何解决这个问题的建议都是值得感谢的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-16 19:19:18

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

票数 -1
EN

Stack Overflow用户

发布于 2013-03-14 21:28:12

您可以使用filter:

代码语言:javascript
复制
var ary = ['three', 'seven', 'eleven'];

ary = ary.filter(function(v) {
    return v !== 'seven';
});

并扩展您的阵列

代码语言:javascript
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2013-03-14 21:41:22

那就继续吧:

代码语言:javascript
复制
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),但这应该更清楚它们发生的顺序。

代码语言:javascript
复制
var a = [1,2,1,1,2,2];
a.removeByValue(1);
a; //[2, 2, 2]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15410504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档