はじめてのJScript+WSH その6 JScriptの配列と連想配列
はじめに
JScriptの配列と連想配列を確認していきます。
配列(array)
宣言時:[] を使用
追加時:array.push(value)
削除時:array.pop()
並び替え:array.sort()
配列の結合:array_1.concat(array_2)
要素数を取得:array.length
// 配列を宣言
var seguments = [];
// 配列の要素数を表示
WScript.echo(seguments.length); // => 0
// 配列に要素を追加
seguments.push("192.168.2.0/24");
seguments.push("192.168.4.0/24");
seguments.push("192.168.1.0/24");
seguments.push("192.168.3.0/24");
// 配列の要素を表示
for(var i = 0; i < seguments.length; i++){
WScript.echo(seguments[i]); // => 第3オクテット 2,4,1,3の順
}
// 配列のソート(辞書順)
seguments.sort();
for(var i = 0; i < seguments.length; i++){
WScript.echo(seguments[i]); // => 第3オクテット 1,2,3,4の順
}
// 配列の最後の要素を削除
seguments.pop();
for(var i = 0; i < seguments.length; i++){
WScript.echo(seguments[i]); // => 第3オクテット 1,2,3の順
}
// 配列のソート(辞書の逆順)
var reverseOrder = function(a, b){
if(a<b){
return 1;
}else if(a==b){
return 0;
}else{
return -1;
}
}
seguments.sort(reverseOrder); // 比較用の関数型オブジェクトを渡す
for(var i = 0; i < seguments.length; i++){
WScript.echo(seguments[i]); // => 第3オクテット 3,2,1の順
}
// 配列の結合
var seguments_2 = [
"172.16.1.0/24",
"172.16.2.0/24",
"172.16.3.0/24"
];
var seguments_all = seguments.concat(seguments_2);
for(var i = 0; i < seguments_all.length; i++){
WScript.echo(seguments_all[i]); // => 192.168.3.0/24 192.168.2.0/24 192.168.1.0/24 172.16.1.0/24 172.16.2.0 /24 172.16.3.0/24
}
また、下記のような機能もあります。
配列を文字列に変換:array.join()
並び替え(逆順):array.reverse()
先頭の要素を抜き出して削除:array.shift()
先頭に要素を追加:array.unshift(value)
末尾に要素を追加:array.push(value) ※再掲
要素の切り出し:array.slice(x,x)
var array = [1,3,4,2];
// 配列を文字列にして返す
WScript.echo(array.join("-")); // => 1-3-4-2
// 配列を逆順にする
array.reverse();
WScript.echo(array.join("_")); // => 2_4_3_1
// 先頭の要素を返して配列から削除
WScript.echo(array.shift()); // => 2
WScript.echo(array.join("_")); // => 4_3_1
// 先頭に要素を追加
array.unshift(0);
WScript.echo(array.join("_")); // => 0_4_3_1
// 末尾に要素を追加
array.push(9)
WScript.echo(array.join("_")); // => 0_4_3_1_9
// 先頭の要素を返して配列から削除
var array = [1,3,4,2,5,6,7,8];
WScript.echo(array.slice(3).join(" ")); // => 2 5 6 7 8 ※index:3の要素"2"以降を切り出す
var array = [1,3,4,2,5,6,7,8];
WScript.echo(array.slice(1,4).join(" ")); // => 3 4 2 ※4つ目の要素は含まれない
var array = [1,3,4,2,5,6,7,8];
WScript.echo(array.slice(1,-2).join(" ")); // => 3 4 5 5 6 ※後ろから見てindex:2の要素"6"までを切り出す
連想配列(hashmap)
宣言時:{} を使用
追加時:hashmap[key] = value
削除時:delete hashmap[key]
// 連想配列を宣言
var seguments = {}
// 連想配列に要素を追加
seguments["192.168.11.0/24"] = "home";
seguments["192.168.12.0/24"] = "office";
seguments["192.168.13.0/24"] = "school";
// 要素を表示
WScript.echo(seguments["192.168.11.0/24"]); // => home
WScript.echo(seguments["192.168.12.0/24"]); // => office
WScript.echo(seguments["192.168.13.0/24"]); // => school
// 連想配列の要素を削除
delete seguments["192.168.12.0/24"];
// 存在チェック
if(!seguments["192.168.12.0/24"]){
WScript.echo("192.168.12.0/24 is not found");
}
// 要素を表示(for文を使用)
for(key in seguments){
WScript.echo(seguments[key]); // => home school
}
おわりに
JScriptは古の言語なだけあってリファレンスが少く、調べるのが大変でした。
参考
次の記事
前の記事
この記事が気に入ったらサポートをしてみませんか?