公開日: 09/19/2023

連想配列の作成

JSLを使って空の連想配列を作成するには、Associative Array()関数または[=>]を使用します。

cary = Associative Array();
cary = [=> ];

連想配列(0個の要素)が割り当てられました。

キーと値には、任意のJSLオブジェクトが使用できます。項目は添え字を使った指定により、追加・変更できます。

cary = Associative Array();
cary["state"] = "NC";
cary["population"] = 116234;
cary["weather"] = "cloudy";
cary["population"] += 10;
cary["weather"] = "sunny";
cary["high schools"] = {"Cary", "Green Hope", "Panther Creek"};

デフォルト値

連想配列にないキーの値は、デフォルト値によって決定します。連想配列にないキーを参照しようとすると、エラーが生じます。連想配列にデフォルト値を定義した場合は、存在しないキーを参照すると、次のように動作します。

そのキーを連想配列に追加する

デフォルト値をその新しいキーに割り当てる

エラーではなく、新しいキーの値(デフォルト値)を戻す

キーに値を割り当てないで文字列のリストから連想配列を作成した場合、キーには1という値が割り当てられます。この連想配列のデフォルト値は0に設定されます。

デフォルト値を設定するには、次のようにします。

cary = Associative Array();
cary << Set Default Value( "Cary, NC" );

連想配列にデフォルト値が設定されているかどうかを確かめるには、<<Get Default Valueメセージを使用します。

cary << Get Default Value;

"Cary, NC"

デフォルト値がない場合は、Empty()が戻されます。

Set Default Valueメッセージ以外に、連想配列のリテラルを指定する際にキーなしの=>valueを使用することによってもデフォルト値を設定できます。

counts = ["a" => 10,
"b" => 3,
=> 0]; // デフォルト値は0
counts["c"] += 1;
Show( counts );

counts = ["a" => 10, "b" => 3, "c" => 1, => 0];

1行目はデフォルト値を0に設定します。2行目はキー"c"がcounts内にないことを示します。結果として、デフォルト値0を持つキー"c"を作成し、1だけ増やします。

メモ: キーの値がデフォルト値と同じである場合、どのキーもデフォルト値を返すためキーは削除されます。

連想配列作成用関数

空の連想配列を作成します。

map = [=>];
map = Associative Array();

デフォルト値を持つ空の連想配列を作成します。

map = [=>0];
map = Associative Array( 0 );

値を指定して連想配列を作成します。

map = ["yes" => 0, "no" => 1];

各キーの値およびデフォルト値を指定して連想配列を作成します。

map = ["yes" => 0, "no" => 1, => 2];

連想配列を含む特定の値を使って、連想配列を作成します。

map = ["yes" => 0, "no" => 1, "alt" => ["a" => "1", "b" => "2"]];

キーと値のセットを表すリストから、連想配列を作成します。

map = Associative Array( {{"yes", 0}, {"no", 1}} );

キーと値のセットを表すリストにデフォルト値の指定も加えて、連想配列を作成します。

map = Associative Array( {{"yes", 0}, {"no", 1}}, 2 );

キーのリストと値のリストから、連想配列を作成します。

map = Associative Array( {"yes", "no"}, {0, 1} );

キーのリストと値のリストおよびデフォルト値を指定して連想配列を作成します。

map = Associative Array( {"yes", "no"}, {0, 1}, 2 );

2つの列参照から、連想配列を作成します。1番目の列がキー、2番目の列が値になります。

map = Associative Array( :name, :height );

2つの列参照およびデフォルト値を指定して連想配列を作成します。

map = Associative Array(:name, :height, .);

キーの1つのリストまたはキーの1つの列参照から、連想配列を作成します。この場合、デフォルト値は0になります。

set = Associative Array( {"yes", "no"} );
set = Associative Array( :name );
より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).