細かすぎて伝わらないjQuery拡張 (5) “$.dig” – Advent Calendar 2016
この記事は賞味期限切れです。(更新から1年が経過しています)
$.dig() は、ドットシンタックスの文字列を渡すとそのオブジェクトを掘り起こして返してくれる関数です。
$.dig(path, object)
使い方
var obj = {
foo: {
bar: {
baz: "hoge"
}
}
};
$.dig("obj.foo.bar.baz"); // => "hoge"
$.dig("foo.bar.baz", obj); // => "hoge"
$.dig("hoge.fuga", obj); // => undefined
- 第二引数で検索のスタート地点を指定できます(デフォルトはwindow)
- 存在しないプロパティであった場合は undefined を返します
コード
$.dig = function(path, obj){
var o;
obj = (obj === void 0) ? window : obj;
o = obj;
path.split(".").forEach(function(name){
if(o === void 0){ return; }
if(! (name in o)){
return o = void 0;
}
o = o[name];
});
return o;
};
通常存在しないプロパティを参照しようとすると Uncaught Reference Error が投げられるので、 事前に検証できるように書いた覚えがあります。 PHPでも似たような物を書きましたが、そちらは単にドットシンタックスで掘りたかったからでした。
コメント