假设我有一个对象:
const object = {
lvl1: {
dogs: "bark",
lvl2: {
cats: "meow",
lvl3: {
cows: "moo"
}
}
}
}
假设我有两个数组:
const array1 = ["lvl1", "lvl2", "cats"]
const array2 = ["lvl1", "lvl2", "lvl3", "cows"]
如何创建仅返回数组作为输入参数的返回cats
和cows
值的函数?
比方说该函数称为getValue()
。
如果调用了const value1 = getValue(array1)
,则它应等效于:
const value1 = object["lvl1"]["lvl2"]["cats"]
如果调用了const value2 = getValue(array2)
,则它应等效于:
const value2 = object["lvl1"]["lvl2"]["lvl3"]["cows"]
到目前为止,这是我的尝试,但是没有用:
const getValue = (array) => {
let o = object;
let newObject = o;
array.forEach((key) => (o = o[key]));
return newObject ;
};