jsの配列の追加、削除、結合、取得など

javascriptの配列(array)の基本的な使い方についてのメモです。

追加

先頭、末尾、任意の位置に、要素を追加します。

先頭に追加 unshift

配列の先頭に値を追加

var array = ['b', 'c'];

array.unshift('a');// ['a', 'b', 'c']

末尾に追加 push

配列の末尾に値を追加

var array = ['a', 'b'];

array.push('c');// ['a', 'b', 'c']

任意の位置に複数追加 splice

配列の指定した場所に一つ以上の値を追加

var array = ['a', 'c', 'e'];
array.splice(1, 0, 'b'); // 二番目に挿入 ['a', 'b', 'c', 'd']


var array = ['a', 'b', 'e'];
array.splice(2, 0, 'c', 'd'); // 三番目に複数挿入 ['a', 'b', 'c', 'd', 'c']

削除

先頭、末尾、任意の位置の、要素を削除します。

先頭を削除 shift

var array = ['a', 'b', 'c'];

array.shift();// ['b', 'c']
array[0] = void 0; // void 0 によりundefinedを代入できます。 [undefined, 'c']

末尾を削除 pop

var array = ['a', 'b', 'c'];

array.pop(); // ['a', 'b']

任意の位置から複数の値を削除 splice

var array = ['a', 'b', 'c'];
array.splice(1, 1); // 二番目から一つ削除 ['a', 'c']

var array = ['a', 'b', 'c'];
array.splice(1, 2); // 二番目から二つ削除 ['a']

全削除

var array = ['a', 'b', 'c'];

array = []; // []

結合

実装によって速度も変わってくるため、「破壊的/非破壊的のどちらの機能を望むか」で選択するのが現実的かもしれない

非破壊的な結合 concat

もともとの二つの配列には影響を及ぼさない

var array1 = ['a', 'b'];
var array2 = ['c', 'd'];
var array = array1.concat(array2);

console.log(array);  // ['a', 'b', 'c', 'd']
console.log(array1); // ['a', 'b']
console.log(array2); // ['c', 'd']

破壊的な結合 push

一つ目の配列に影響を及ぼす

var array1 = ['a', 'b'];
var array2 = ['c', 'd'];
array1.push.apply(array1, array2);

console.log(array1); // ['a', 'b', 'c', 'd']
console.log(array2); // ['c', 'd']

Array.prototype.push.apply(a, b); や、
[].push.apply(a, b);でも可
しかし[].push.applyだと空配列の生成コストが発生するため、
array1.push.apply(a, b); の方が良さそう。

取得

先頭を取得 [0]

var array = ['a', 'b', 'c'];

var value = array[0];

console.log(array); // ['a', 'b', 'c']
console.log(value); // 'a'

末尾を取得 [array.length – 1]

var array = ['a', 'b', 'c'];

var value = array[array.length - 1];

console.log(array); // ['a', 'b', 'c']
console.log(value); // 'c'

一つ以上の値(配列)を取得 slice

第一引数以上、第二引数未満の配列を取得

var array = ['a', 'b', 'c', 'd'];

var s1 = array.slice(1, 2);
var s2 = array.slice(1, 3);

console.log(array); // ['a', 'b', 'c', 'd']
console.log(s1);    // ['b']
console.log(s2);    // ['b', 'c']

最大値、最小値を取得 – Math.max Math.min

var array = [3, 1, 5, 9];

var max = Math.max.apply(null, array);
var min = Math.min.apply(null, array);

console.log(max); // 9
console.log(min); // 1

参考

Array – JavaScript | MDN

配列の連結(concat vs Array.prototype.push.apply) – Qiita

速度検証

console

console.time('test');
/*
 計測対象処理
*/
console.timeEnd('test'); // ここで計測時間が出力されます。

new Date

var startTime = new Date();
/*
 計測対象処理
*/
var endTime = new Date();

console.log(endTime - startTime + "ms");

コメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

同じカテゴリの前後の記事


  1. KATOON.NET
  2. TRASH
  3. jsの配列の追加、削除、結合、取得など