-1

重複の可能性:
JavaScriptに文字列が含まれている場合は配列キーを削除します

jquery、アンダースコア、またはネイティブjavaScriptを使用して、要素を削除または配列に追加したいと思います。

これが私のコードです。

var a = ['4', '5'];
var remove = false/true; 

if(!remove) {
     a.push('6'); // it works
} else {
     a.remove(5); // I have no idea how to perform this in a very dry way
}
4

5 に答える 5

2

ネイティブJavaScript:

a.splice(1, 1); // ['5']
a // ['4']

値を新しい要素に置き換えることができます。

var a = [1, 2, 3];
a.splice(1, 1, -1, -2) // [2]
a // [1, -1, -2, 3]

MDNドキュメントを参照してください

于 2012-10-26T08:45:08.930 に答える
2

NULLとdystroyの答えを組み合わせると、純粋なjsでNikoの答え(ish)を取得できます。

a.splice(a.indexOf('5'),1);

または、複数の「5」を削除したい場合

var p;
while( (p = a.indexOf('5')) != -1 ){
    a.splice(p, 1);
}

きちんとした方法は、かなり最適ではなく、最新のブラウザのみがサポートされています(また、新しい配列も作成されます)が、それでも有効で柔軟性があります。

a = a.filter(function(v){
  return v != '5';
});
于 2012-10-26T08:50:48.850 に答える
0

使用する

delete a[1];

また

delete a[a.indexOf('5')];

また

a.splice(a.indexOf('5'), 1);

undefined配列にを入れたくない場合。

IE8との互換性のために、indexOfの共通パッチを追加することをお勧めします

于 2012-10-26T08:45:11.390 に答える
0

アンダースコア:

a = _.without(a, '5');

http://underscorejs.org/#withoutを参照してください

于 2012-10-26T08:45:42.797 に答える
0

使用splice()方法:

if(typeof Array.prototype.remove === "undefined") {
    Array.prototype.remove = function(e) {
        this.splice(this.indexOf(e), 1);
    }
}

var a = ['4', '5'];
a.remove('5');
alert(a);​

プリント:

4

デモ

于 2012-10-26T08:52:03.787 に答える