宣言
new Array()
var a = new Array()
もしくは []で最初から中身や要素数を書く。
var a = []
配列、連想配列
要素数
要素の追加
引数で追加
var renso = {}
renso.hoge = "hoge";
renso.fuga = "fuga";
連想配列を結合する
jQueryには
$.extend(target,obj1[,obj2,...])
要素の削除
splice()
array.splice(index, howMany, [element1][, ..., elementN]);)
index の要素から howMany 個削除する
※その場で配列長が短くなるので、ループを回す際には後ろから回すなど、工夫が必要
indexが配列長より大きい場合
要素のソート(並び替え)
sort
htmlでいうところのli要素(の集合、配列)に対して使ってみたが、リストの順番は実では反映されず。
html($(ul>li).sort())をしてみたら、ソートはできたが、.data("-","~")でくっつけておいたデータが反映されず。
変数の並べ替えは「辞書的」に行われる。
.sort(compareFunction)
でcomareFunctionを定義することで、オブジェクト等々でも並べ替えが可能。
- compareFunction(a,b) < 0 : a→bの順に並べる
- compareFunction(a,b) = 0 : a = b と判断(並べ替えない)
- compareFunction(a,b) > 0 : b→aの順に並べる
中でどのような並べ替えが行われているのか?どうも
挿入ソートで行われているようだ(firefoxとchromeでは)。挿入ソートなので、n番目の要素のソート(挿入位置の検索)を開始してから、並べ替えが発生しなかったとき、つまり compareFunction < 0 になったとき、次のn+1番目の要素のソートに遷移する、という意味でいいのか?
すると、「並べ替えて次の」か並べ替えないか」だから、すくなくともfirefoxとchromeでは、compareFunction = 0 と compareFunction > 0 は「並べ替えない」という意味で同義になるのか?
Array.sort - MDN
forで回したい
for(len key in dict){}
で回せるが、他にも
Object.keys(dict).forEach
最終更新:2020年07月31日 23:45