假设我们有一个对象的引用-
let test = {};
该对象可能(但不是立即)具有嵌套对象,例如-
test = {level1: {level2: {level3: "level3"}}};
我们需要编写一个JavaScript函数,该函数将一个这样的对象作为第一个参数,然后将任意数量的字符串作为参数。
函数应确定对象中是否存在由键字符串描述的嵌套组合。
为此的代码将是-
const checkNested = function(obj = {}){ const args = Array.prototype.slice.call(arguments, 1); for (let i = 0; i < args.length; i++) { if (!obj || !obj.hasOwnProperty(args[i])) { return false; } obj = obj[args[i]]; }; return true; } let test = { level1:{ level2:{ level3:'level3' } } }; console.log(checkNested(test, 'level1', 'level2', 'level3')); console.log(checkNested(test, 'level1', 'level2', 'foo'));
输出结果
控制台中的输出将是-
true false