JavaScript

javascriptで深い階層の確認

More than 3 years have passed since last update.


概要

連想配列で深い階層のキーが存在するか確認します。

ない場合のデフォルトの値も設定できます。

※PHPでは、こんな感じ。

isset($a['a']['b']['c']['d'])


ソース

get = function(val, keys, def){

var keys = String(keys).split('.');
for(var i=0;i<keys.length && val;i++){
val = val[keys[i]];
}
return val || val === false ? val : def;
}


使い方

調べたい変数を第一引数にし、第二引数にキーを.区切りで指定します。

第三引数に、見つからなかった場合 ( null or undefined ) の値を代入します。

a = {a:{b:{c:{d:'見つかりました'}}}};

// 見つかりました
get(a, 'a.b.c.d', '見つかりませんでした');

// 見つかりませんでした
get(a, 'a.aaa', '見つかりませんでした');