您的位置:首页 > Web前端 > JavaScript

JavaScript根据指定路径查找对象属性值

2017-06-17 10:45 471 查看
我实现了一个find函数,它接收2个参数,第一个参数是个object,第二个参数是个用英文句号分割的路径字符串path,这个函数将根据path查找object内对应的属性值。

它具有几个特点:

1.它可以根据数组索引进行查找。

2.它只会检测实例上的属性,而不会涉及到原型链。

3.如果path无效(找不到对应属性),将返回undefined。

function find(object, path) {
var props = path.split(".");
for(var i=0;i<props.length;i++){
var p = props[i];
if(object && object.hasOwnProperty(p)){
object = object[p];
}
else{
return undefined;
}
}
return object;
}

//查找数组索引
var obj1 = {"people" : ["Jack","Tom","Andy"]};
//Tom
document.write(find(obj1,"people.1"));

//查找对象属性
var obj2 = {"class" : {"teacher" : {"name" : "Li"}}};
//Li
document.write(find(obj2,"class.teacher.name"));
//undefined
document.write(find(obj2,"class.teacher.age"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息