2012年10月14日
配列はオブジェクトです
javascript の配列で苦労したことについて書きます。
配列(Array オブジェクト)は、簡単にいうと、インデックスで管理された値のリストです。
以下のような文法で使用します。
参考までに、上記のように突然5番目に値を設定すると、
1〜4までの配列(0 は push で定義済)が undefined で定義されます。
ここで勘違いされがちなのが、文字列も配列の添字として定義できると思ってしまうことです。
これは、arr オブジェクトの abc 属性を拡張して 'def' 文字列を格納したにすぎません。
arr.abc = 'def' と同じ意味です。
従って、arr.length の内容には反映されません。
ただし、for in は属性についても表示してくれます。
{a8.net http://books.livedoor.com/item/3481813}
配列(Array オブジェクト)は、簡単にいうと、インデックスで管理された値のリストです。
以下のような文法で使用します。
// arr = new Array() でも可
var arr = [];
// 最初の配列に 'AAA' を定義
arr.push('AAA');
// 5番目の要素に 'BBB' を定義
arr[5] = 'BBB';
参考までに、上記のように突然5番目に値を設定すると、
1〜4までの配列(0 は push で定義済)が undefined で定義されます。
ここで勘違いされがちなのが、文字列も配列の添字として定義できると思ってしまうことです。
// 上記の続き
arr['abc'] = 'def';
これは、arr オブジェクトの abc 属性を拡張して 'def' 文字列を格納したにすぎません。
arr.abc = 'def' と同じ意味です。
従って、arr.length の内容には反映されません。
var arr2 = [];
arr2['abc'] = 'def';
// length = 0 と表示される
console.log(arr2.length);
ただし、for in は属性についても表示してくれます。
// 上記の続き
for(var itm in arr) {
console.log(itm + '=' + arr[itm]);
}
{a8.net http://books.livedoor.com/item/3481813}
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
posted by FJT at 23:10| javascript