0

私は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;
        }
    }
} 

この問題を解決するための提案をいただければ幸いです。

4

3 に答える 3

1

フィルターを使用できます:

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)
于 2013-03-14T13:28:11.933 に答える
0

続けてください:

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]
于 2013-03-14T13:41:22.243 に答える
-1

この問題を解決するために、{A1;123,A2;432,A3;123,A4;543,A5;123,A6;123} のように、各要素に一意の ID を追加しました。この場合、特定の要素を見つけるのは大変です。同じ機能で簡単に。

于 2013-03-16T11:19:17.887 に答える