gpt4 book ai didi

javascript - 如何根据数组访问对象的属性

转载 作者:太空宇宙 更新时间:2023-11-04 16:27:53 25 4
gpt4 key购买 nike

所以我有一个像这样的数组:

var arr=[one, lol];

还有一个像这样的对象

var obj={
one:{
lol:11234
}
}

如果我执行 obj[lol] 那么如何才能打印出 11234?请记住,我不知道数组有多长,并且像 console.log(obj[one][lol]) 这样的答案不起作用。提前致谢。

最佳答案

您可以存储前一个属性的值(最初是 obj)并继续循环直到数组末尾,如下所示:

var arr = ['one', 'two', 'three'];

var obj = {
one: {
two: {
three: 11234
}
}
}

var currentProp = obj;

for(var i = 0; i < arr.length; i++) {
currentProp = currentProp[arr[i]];
}

console.log(currentProp);

上面的代码将从对象 obj 开始,然后循环直到数组的长度,并将 currentProp 重新分配给数组中的下一个属性。在本例中,它的作用如下:

  • 第一次迭代,访问 obj[arr[0]],即 one,并将其分配给 currentProp
  • 第二次迭代,访问 obj[arr[0]][arr[1]]one[arr[1]],即 two,并将其分配给 currentProp
  • 第三次迭代,访问 obj[arr[0]][arr[1]][arr[2]]two[arr[2]],其中是,并将其分配给currentProp。然后循环在到达列表末尾时终止。

最终,最后一个属性的值将在currentProp中,并正确输出11234。

关于javascript - 如何根据数组访问对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40078264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com