27

配列がある場合、たとえば:

a = ["a", "b", "c"]

私はのようなものが必要です

a.remove("a");

これどうやってするの?

4

6 に答える 6

14
var newArray = [];
var a=["a","b","c"];
for(var i=0;i<a.length;i++)
    if(a[i]!=="a") 
        newArray.push(a[i]);

JavaScriptの新しいバージョンの時点で:

var a = ["a","b","c"];
var newArray = a.filter(e => e !== "a");
于 2012-06-07T22:18:45.693 に答える
7
remove = function(ary, elem) {
    var i = ary.indexOf(elem);
    if (i >= 0) ary.splice(i, 1);
    return ary;
}

ターゲットブラウザがサポートarray.indexOfしている場合は、そのページのフォールバックコードを使用します。

すべての等しい要素を削除する必要がある場合はfilter、Rocketが提案したように使用してください。

removeAll = function(ary, elem) {
    return ary.filter(function(e) { return e != elem });
}
于 2012-06-07T22:17:14.723 に答える
3

最新のブラウザを使用している場合は、を使用できます.filter

Array.prototype.remove = function(x){
    return this.filter(function(v){
        return v !== x;
    });
};

var a = ["a","b","c"];
var b = a.remove('a');
于 2012-06-07T22:17:59.900 に答える
2

配列から必要な要素を省略する簡単な解決策を思いつきました。

<script>
    function myFunction()
    {
        var fruits = ["One", "Two", "Three", "Four"];

        <!-- To drop the element "Three"-->
        <!-- splice(elementid, number_of_element_remove) -->
        fruits.splice(2, 1);

        var x = document.getElementById("demo");
        x.innerHTML = fruits;
    }
</script>
于 2013-12-10T05:58:13.140 に答える
1
let xx = ['a','a','b','c'];  // Array
let elementToRemove = 'a';  // Element to remove
xx =xx.filter((x) => x != elementToRemove) // xx will contain all elements except 'a'
于 2017-11-29T14:04:54.460 に答える
0

追加のペイロード(約4 kBの縮小およびgzip圧縮)を気にしない場合は、Underscore.jsライブラリのwithout関数を使用できます。

_.without(["a", "b", "c"], "a");

Underscore.jsは、この関数と多くの非常に便利な関数を提供します。

于 2012-06-07T22:26:27.030 に答える