【问题标题】:JQuery Dynamic Object NamesJQuery 动态对象名称
【发布时间】:2021-03-13 19:31:52
【问题描述】:

我有这个对象列表

var depts = [
  {name:"Sales", phone1:"1.1", phone2:"1.2", phone3:"1.3"},
  {name:"Technical", phone1:"2.1", phone2:"2.2", phone3:"2.3"}
  {name:"Parts", phone1:"3.1", phone2:"3.2", phone3:"3.3"}
]

我想遍历部门并检查它是否是电话号码并遍历每个电话。

$.each (depts, function(i, v) {
    var i
    for (i = 0; i < 3; i++) {
        phones += v.phone+i + ' ~ '    //This is where I'm having trouble getting.
    };

    console.log(v.name + ' - ' + phones)
});

我想要达到的结果是这样的:

Sales - 1.1 ~ 1.2 ~ 1.3
Technical - 2.1 ~ 2.2 ~ 2.3
Parts - 3.1 ~ 3.2 ~ 3.3

我已经尝试了以下

v.window['phone'+i]
window[v+'.phone'+i]
window['v.phone'+i]

但我越来越不确定了。

【问题讨论】:

    标签: jquery arrays object


    【解决方案1】:

    问题是您正在尝试执行v.phone + i,即将i 添加到v.phone。相反,您应该使用v[phone + i]

    此外,我会为此使用 Array.prototype.forEach,尽管这是您的选择:

    depts.forEach(dept => console.log(`${dept.name} - ${Array.from({length: 3}, (_, i) => dept[`phone${i + 1}`]).join(' ~ ')}`));
    

    【讨论】:

    • 就是这样!非常感谢!
    猜你喜欢
    • 2010-11-15
    • 2010-12-20
    • 2013-09-27
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多