2番目のアラートに0と表示される理由を説明できる人はいますか?JavaScript配列の長さメソッド
var pollData = new Array();
pollData['pollType'] = 2;
alert(pollData['pollType']); // This prints 2
alert(pollData.length); // This prints 0 ??
2番目のアラートに0と表示される理由を説明できる人はいますか?JavaScript配列の長さメソッド
var pollData = new Array();
pollData['pollType'] = 2;
alert(pollData['pollType']); // This prints 2
alert(pollData.length); // This prints 0 ??
数値のインデックスを追加する場合にのみ配列の長さが変更されます。例えば、
pollData["randomString"] = 23;
は、長さには影響しませんが、
var pollData = [];
pollData["45"] = "Hello";
pollData.length; // 46
はキーが限り、数値または文字列だった場合、それは問題ではありませんので46注意に長さを変更しますそれは数値整数です。
さらに、この方法で配列を使用することは想定されていません。配列はオブジェクトでもあり、JavaScriptでは任意のオブジェクトが任意のキーを文字列として保持できるため、副作用が多いと考えてください。
まだ配列に何も入れていないからです。配列のオブジェクトの動的に作成されたpollType
属性にのみ割り当てられました。
数値インデックスを使用すると、配列は自動的に長さを扱います。例えば:
var arr = [ ]; // same as new Array()
arr[2] = 'Banana!';
alert(arr.length); // prints 3 (indexes 0 through 2 were created)
length
性を考慮名前は、インデックスされ、アレイのメンバーのみかかり(等'1'
、'2'
、'3'
、...)。
JavaScriptの配列には数値インデックスのみがあります。
本質的にあなたが上でやっていることであるオブジェクトを使用して、その配列オブジェクトのプロパティを設定します。
array.lengthは、配列に格納されている値の数を返します。最初のアラートは、 'pollType'の位置の値を返しています。
JavaScriptの配列で助けを必要とするとき、私は常に使用リファレンスガイドでは、このページでhttp://www.hunlock.com/blogs/Mastering_Javascript_Arrays
私はまた、あなたがこの問題に実行することとして、連想配列をサポートしていません見出しのJavascriptの下で、それが言うこと読んだまた、
Array.lengthがそうしている間に、それはそのように動作しません。ここ:http://jsfiddle.net/6WrkT/1/ –
var pollData = Array();
function test() {
pollData[0] = 2
alert(pollData[0]);
alert(pollData.length);
}
// [x]は配列位置です。それゆえ['polltype']は問題を引き起こしています
そのくそクレイ。配列にしないでください私の脳を傷つける –