JavaScript で JSON オブジェクト ツリーのすべてのノードを走査する 質問する

JavaScript で JSON オブジェクト ツリーのすべてのノードを走査する 質問する

JSON オブジェクト ツリーをトラバースしたいのですが、そのためのライブラリが見つかりません。難しくはないようですが、車輪の再発明のような気がします。

XML には、DOM を使用して XML ツリーをトラバースする方法を示すチュートリアルが数多くあります :(

ベストアンサー1

jQueryがやり過ぎこのような原始的なタスクの場合、次のようなことができます。

//your object
var o = { 
    foo:"bar",
    arr:[1,2,3],
    subo: {
        foo2:"bar2"
    }
};

//called with every property and its value
function process(key,value) {
    console.log(key + " : "+value);
}

function traverse(o,func) {
    for (var i in o) {
        func.apply(this,[i,o[i]]);  
        if (o[i] !== null && typeof(o[i])=="object") {
            //going one step down in the object tree!!
            traverse(o[i],func);
        }
    }
}

//that's all... no magic, no bloated framework
traverse(o,process);

おすすめ記事