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"));
它具有几个特点:
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"));
相关文章推荐
- JavaScript根据指定路径创建对象
- javascript 数组对象根据指定属性排序
- 根据GPS经纬度查找指定范围内的对象
- JavaScript 根据数组中对象的属性排序
- JavaScript对象数组如何按指定属性和排序方向进行排序
- JavaScript对象数组根据某属性sort升降序排序
- 根据对象实例查找属性(反射小例子)
- 对JavaScript对象数组按指定属性和排序方向进行排序
- java使用反射机制根据属性名获取object对象指定属性的值
- Javascript根据指定下标或对象删除数组元素
- 根据对象中某一属性进行升序降序排序的javascript实现
- javascript下判断一个对象是否具有指定名称的属性的的代码
- JavaScript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性。
- 修改已经打开的对话框的浏览路径-修改文件属性和查找指定窗口
- 对dao层封装后可以实现根据某一条属性查找到相应的javabean对象
- 如何根据指定路径查找文件发布
- 修改已经打开的对话框的浏览路径-修改文件属性和查找指定窗口
- node 根据文件名查找其在指定目录中的路径
- 浅谈JavaScript对象数组根据某属性sort升降序排序