web-dev-qa-db-ja.com

javascriptの配列の要素を設定解除するにはどうすればよいですか?

配列fooからキー「bar」を削除して、「bar」が表示されないようにするにはどうすればよいですか

for(key in foo){alert(key);}
129
Steven Noble

deleteを使用しないでください。配列から要素を削除しないため、未定義として設定されるだけで、配列の長さに正しく反映されません。

キーがわかっている場合は、spliceを使用する必要があります。

myArray.splice(key, 1);

スティーブンの立場にいる人には、次のようなものを試すことができます:

for (var key in myArray) {
    if (key == 'bar') {
        myArray.splice(key, 1);
    }
}

または

for (var key in myArray) {
    if (myArray[key] == 'bar') {
        myArray.splice(key, 1);
    }
}
225
going
delete foo[key];

:D

50
user19302

重要な注意:JavaScript配列は、PHPで慣れているような連想配列ではありません。 「配列キー」が文字列の場合、配列の内容を操作していません。配列はオブジェクトであり、ブラケット表記法を使用して<key name>という名前のメンバーにアクセスしています。副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example:

 var myArray = []; 
 myArray ["bar"] = true; 
 myArray ["foo"] = true; 
 alert(myArray.length) ; // 0を返します。

配列に要素を追加していないため、myArrayのbarおよびfooメンバーのみを変更しました。

36
John Factorial

キー名がわかっている場合は、次のようにします。

delete array['key_name']
32
user3177525

これは私がそれをする方法です

 myArray.splice( myArray.indexOf('bar') , 1) 
2
stackoverflows

http://www.internetdoc.info/javascript-function/remove-key-from-array.htm

removeKey(arrayName,key);

function removeKey(arrayName,key)
{
 var x;
 var tmpArray = new Array();
 for(x in arrayName)
 {
  if(x!=key) { tmpArray[x] = arrayName[x]; }
 }
 return tmpArray;
}
1
ling