配列fooからキー「bar」を削除して、「bar」が表示されないようにするにはどうすればよいですか
for(key in foo){alert(key);}
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);
}
}
delete foo[key];
:D
重要な注意: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メンバーのみを変更しました。
キー名がわかっている場合は、次のようにします。
delete array['key_name']
これは私がそれをする方法です
myArray.splice( myArray.indexOf('bar') , 1)
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;
}