リスト
Arrayで実装する。
参考
作成
var list = []; // 空
var list = [1, 2, 3, 4]; // 要素(値)を指定
var list = [1, 2,, 4, 5]; // 要素(値)を指定。指定しなかった部分はundefined
// 避けるべき記述
var list = [1, 2, 3, 4, ]; // IEでは要素数5, Chromeでは4になる。
var list = new Array(1, 2, 3, 4); // 問題なく作成できる。しかし、要素数1のときにnew Array(1)とすると別の意味(配列サイズの指定)になる。
要素数取得
list.length
参照
- 先頭
value = list[0]
- インデックス0が存在しなければundefined
- 末尾
value = (list.length > 0) ? list[list.length - 1] : null;
- 以下の方法もありうる。
value = list[list.length - 1];
- list.length==0のとき、list["-1"]の値が取得される点に注意。"-1"というプロパティが未定義なことを前提にすれば、利用できる。この場合、list.length==0ならundefinedが得られる。
- 以下の方法もありうる。
一部を取り出す
subList = list.slice(3); // index = 3から最後までを取得 subList = list.slice(3, 5); // index = 3から、4まで(5の手前まで)を取得 subList = list.slice(3, -1); // index = 3から、最後から2番目まで(index= length -1 の手前まで)を取得
参考
末尾に追加
- 1個追加
list.push(value);
- 複数追加
list.push(value1, value2, ...);
- undefinedを追加して、リストの要素数を指定の数にする。
list.length = n;
- nが元のlengthより小さければ、リストの末尾がカットされる。
参考
先頭に追加
- 1個追加
list.unshift(value);
- 複数追加
list.unshift(value1, value2, ...);
参考
挿入
list.splice(3, 0, value1, value2, ...); // index = 3 の位置にvalue1, value2,...を挿入。
- 第二引数には0を指定。
結合
list = list.concat(list2, list3, ...);
- list.concatはlist自体は変更せずに新しいArrayを作って返す。
- concatの引数がArrayでない場合は、それ自身を新しいArrayに追加する。引数がArrayか否かで挙動が変わる点に注意。
参考
削除
- 末尾から取り出して削除
value = list.pop();
- listが空ならundefined。
- 先頭から取り出して削除
value = list.shift();
- listが空ならundefined。
- 指定部分を取り出して削除
subList = list.sprice(3, 2); // index = 3 から2個を削除。削除した要素のArrayを取得。
- 第二引数が0なら何も削除されない。subListは空の配列になる。
参考
置換
- 指定部分を削除してそこへ別の要素を追加
list.sprice(3, 2, value1, value2, ...);
並び替え
list.sort(); list.sort(callback); list.reverse();
検索
list.indexOf(searchElement[, fromIndex]) // ECMAScript 5 list.lastIndexOf(searchElement[, fromIndex]) // ECMAScript 5