gpt4 book ai didi

javascript - 在不使用 eval() 的情况下访问串联的属性名称

转载 作者:行者123 更新时间:2023-11-30 13:01:29 24 4
gpt4 key购买 nike

我想弄清楚如何在 for 循环中连接一个对象; eval() 工作正常,但我想要最佳效率,而且我在 Google 上搜索的大部分内容让我相信 eval() 不是一个安全的选择。我查看了与 eval() 相关的其他示例,但是,似乎没有一个是相同的情况。

我是 Javascript 的初学者,如果有一个简单的解决方案,我深表歉意。

objFunction: function () {
var concat1;
var concat2;
$('table tbody tr').each(function (i) {
i++;
for (var x = 1; x <= 4; x++) {
concat1 = 'obj1.obj2.obj3.step' + i + '[' + x + ']' + '.name';
concat2 = 'obj1.obj2.obj3.step' + i + '[' + x + ']' + '.icon';

console.log(eval(concat1));
console.log(eval(concat2));
});
}

谢谢,

最佳答案

那么,您已经在使用 bracket notation member operator .只需将它用于 stepN 即可:

function () {
$('table tbody tr').each(function (i) {
i++;
for (var x = 1; x <= 4; x++) {
console.log(obj1.obj2.obj3['step'+i][x].name);
console.log(obj1.obj2.obj3['step'+i][x].icon);
} // <-- you're missing this brace, btw
});
}

关于javascript - 在不使用 eval() 的情况下访问串联的属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17304814/

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