有学前端的朋友说每次都要写好多 if 来判断,避免 undefined 的问题,然后向我求助。这里写一个简单的获取 Js 对象多层结点的值的方法共大家参考。
/*
obj:
node: 结点名称,如果多层级,用"."分隔。例:"node1.node2.node3"
*/
function getJsonValue(obj, node) {
if (!obj) {
return null;
}
if (!node) {
return null;
}
var nodes = node.split(".");
if (nodes.length == 1) {
return obj[node];
}
return getJsonValue(obj[nodes[0]], node.substr(nodes[0].length + 1));
}
本人非专业前端,如果有不规范的地方,欢迎交流讨论。