//通过id获取根父级的名字
function idgetparentname(json, id) {
//for遍历对象数组
for (var i in json) {
//如果对象的id等于当前输入id
if (json[i].id == id) {
//获取对象的父级id
var ces = json[i].parentid;
//若父级id为零 则为根父级
if (ces == 0) {
//返回根父级name
return json[i].name;
} else {
//递归调用由return返回新的值
return idgetparentname(json, json[i].parentid);
}
}
//console.log('for',i);
}
}
其中for( x in data)的用法是将数组data中的数据一个一个的付给x,此时x是新的变量
递归调用后由return返回新的值,若无return 无法返回值, json[i].name结果为undefined
全部代码:
window.onload = function () {
var user = [{
id: 1,
name: '怎的好',
age: 20,
parentid: 0
},
{
id: 2,
name: '张盼',
age: 18,
parentid: 1
},
{
id: 3,
name: '陆夫人',
age: 19,
parentid: 2
},
{
id: 4,
name: '孤影1',
age: 17,
parentid: 0
},
{
id: 5,
name: '孤影2',
age: 17,
parentid: 3
},
{
id: 6,
name: '孤影3',
age: 17,
parentid: 4
},
];
var values = this.idgetname(user, 5);
var name = namegetid(user, "张盼");
//var parentname = idgetparentname(user, 6);
console.log( idgetparentname(user, 6) );
console.log(values);
console.log(name);
//console.log(parentname);
}
//1、通过id获取名字
function idgetname(json, id) {
// for(var i=0;i