轉載:https://blog.csdn.net/esir82/article/details/73369079 感謝該作者
/*
我實現了一個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"));