読者です 読者をやめる 読者になる 読者になる

ねっとぱんだ

Webデザイン、プログラミングの勉強ブログ。

【javascript】 配列【随時更新】

基本的な書き方

配列の定義

var 配列名 = new Arry(要素数=最初の空きの数)
var a = new Arry(6) //中が空でも.lengthで6が返される。
//一般的には要素数指定しない。

配列の初期化

var 配列名 = [];
var 配列名 = [1,2,3,4,5];

値の参照など

var arr = [2,4,5,6]

arr[2] = 3

//配列を全て呼び出せる
console.log(arr);

配列の長さに合わせて呼び出す。

lengthで配列の数を指定している。
(配列の数 = keyの最大値 + 1 )

var a = [100,200,300,400,500,600,700];
for(var i = 0; i < a.length; i++){
	document.write(a[i],'<br>');
}

配列の参照の練習

var Xname = ['たなか','ごとう','なかやま','いとう'];
var write = document.getElementById('write')
function call(num){
write.innerHTML = (Xname[num] + 'さんこんにちわ。');
}

配列の長さを参照

length
文字列の長さ
string
文字列の連なり
var arr = [1,2,3];
console.log(arr.length);

連想配列

連想配列の定義
正確には連想配列は配列ではなくオブジェクトになる。

var b = new Object ();

連想配列の初期化と呼び出し

var b = {
     'c' : 10,
     'd' : 20,
     'e' : 30
};
document.write(b['c'],'<br>');
document.write(b['d'],'<br>');
document.write(b['e'],'<br>');

連想配列の長さを取得

var b = {
	'c' : 10,
	'd' : 20,
	'e' : 30
};

var leng = Object.keys(b).length;
document.write(leng);

配列を文字列に変換

var arr = [1,2,3,4]
//文字列に変換
var arrSt = arr.toString();
//引き数で区切りを作り、文字列に変換
var arrJ = arr.join('@');
document.write(arrSt + '
');
document.write(arrJ);

二次元配列

二次元配列の書き方

var arr = [
    [0,1,2],
    [3,4,5]
    ];
console.log(arr[0][0]);
console.log(arr[0][1]);
console.log(arr[0][2]);
console.log(arr[1][0]);
console.log(arr[1][1]);
console.log(arr[1][2]);

三次元配列

var arr = [
     ['a','b',[1,2,3]],
     ['d','e',[4,5,6]]
    ];
//6が書き出される。
document.write(arr[1][2][2]);

配列のプロパティ

配列の中の値の位置を検索

indexOfを使うと先頭から検索される。

var array = [1,3,2,1,4,3,6];
//先頭に一番近い3が検索される
var index = array.indexOf(3);
console.log(index);

lastIndexOfを使うと末尾から検索される。

var array = [1,3,2,1,4,3,6];
//末尾に一番近い3が検索される
var index = array.lastIndexOf(3);
console.log(index);

配列の一部を切り出す

slice(1,2)
  • 1つ目 begin…配列の何番目か。先頭は0。(-の値を入れると末尾から)
  • 2つ目 end…どこまで切り出すか(-の値を入れると末尾から)
spliceと違い、配列を変更しない。

var array = [1,3,2,1,4,3,6];
console.log(array.slice(1,3));

配列を順番に並べる

数値なら値の大きさ順。文字なら辞書順。

var array = [1,3,2,1,4,3,6];
console.log(array.sort());

配列を独自ルールで並び替え

var arr = ['aaaa','bbb','cc','d']
var st = function(a , b){
return a.length - b.length;
//aの文字列がbより少なければ負の値を返却
};//文字の長さ順に並ぶ
document.write(arr + '
');
var result = arr.sort(st);
document.write(result + '
');

LIFO(スタック) pop/push

pop
配列の末尾の要素を取得。
push
配列の末尾に値を追加。
LIFO
Last In,First Out
スタックと言われる処理。

最後に入れた値を最初に取り出す処理。

var arr = new Array('a','b','c','d');
arr.push('e');
console.log(arr)

var pop1 = arr.pop();
console.log(pop1);
console.log(arr);
var pop2 = arr.pop();7
console.log(pop2);
console.log(arr);
arr.push('e');
console.log(arr);

FIFO(キュー) shift

FIFO
First in, First out
shift

最初に入れたものを最初にとりだす処理。

var arr = new Array('a','b','c','d');
arr.push('e');
console.log(arr);
var shift1 = arr.shift();
console.log(shift1);
console.log(arr);
var shift2 = arr.shift();
console.log(shift2);
console.log(arr);
unshit
先頭に値を追加できる。