在try 更自如地使用递归函数的同时,我try 编写一个函数,该函数接受一个以点分隔的字符串,并将其转换为一个对象.
{
user: {
first: {
name: 'robert'
}
}
}
以下是我的try :
function objectifyHelper(array, object) {
if (array.length === 2) {
const [key, value] = array;
object[key] = value;
return object;
} else {
object[array[0]] = objectifyHelper(array.slice(1), object);
return object;
}
}
function objectify(string) {
const tokens = string.split('.');
return objectifyHelper(tokens, {});
}
const str = 'user.first.name.robert';
const result = objectify(str);
这让我得到了以下结果:
result <ref *1> {
name: 'robert',
first: [Circular * 1],
user: [Circular * 1]
}
我做错了什么?