给定 javascript 对象
const obj = {
a: {
b: {
c: {
d: {
e: 1
}
}
}
}
};
编写一个函数获取 obj 中指定的属性值
const getValue = function (obj, str) {
if (typeof str !== 'string') {
return '参数类型错误';
}
const index = str.indexOf('.');
if (index < 0) {
if (!obj[str]) {
return '没有对应的属性值';
} else {
return obj[str];
}
}
const preStr = str.slice(0, index);
const restStr = str.slice(index + 1);
if (obj[preStr]) {
return getValue(obj[preStr], restStr);
} else {
return '没有对应的属性值';
}
}
console.log(getValue(obj, 1)); // 参数类型错误
console.log(getValue(obj, 'a.b.c.d.e')); // 1
console.log(getValue(obj, 'a.b.c')); // { d: { e: 1 } }
console.log(getValue(obj, 'a')); // { b: { c: { d: [Object] } } }
console.log(getValue(obj, 'x')); // 没有对应的属性值
console.log(getValue(obj, 'a.x')); // 没有对应的属性值
console.log(getValue(obj, 'a.x.b')); // 没有对应的属性值
网友评论