【问题标题】:JavaScript - Dynamic Array and LoopingJavaScript - 动态数组和循环
【发布时间】:2014-10-29 16:38:58
【问题描述】:

假设您有一个产品页面。在此页面上有两个选择输入,其中包含选项。

尺寸和颜色各有一个。这可能会因产品而异,例如窗帘可能有尺寸、长度和颜色(三个选择菜单)。

数组是动态创建的(基于每个选择菜单及其选项):

var dynamicArr = [],
    i,
    j,
    opt,
    $('.select');

for (i = 0; i < select.length; i += 1) {

    opt = select.eq(i).find('option');

    if (dynamicArr[i] === undefined) {
        dynamicArr[i] = [];
    }

    for (j = 0; j < opt.length; j += 1) {
        dynamicArr[i].push(opt.eq(j));
    }

}

想象一下页面有一个大小和颜色下拉菜单。上面会创建一个这样的数组:

dynamicArr = [['size'], ['color']]

我想分别循环遍历其中的每一个(以获取单个值并进行比较)。

我的问题从这里开始。动态数组的长度可能为 1、2、3、4、5、6(取决于页面上的选择选项)。因此我不能这样做,因为不会总是有两个选择

for (i = 0; i < dynamicArr[0].length; i += 1) { 
}
for (i = 0; i < dynamicArr[1].length; i += 1) { 
}

我将如何像上面一样找出长度并单独循环,例如如果有三个选择,它会自动知道有这么多,并像上面一样循环它们。

如果您仍然感到困惑,请告诉我。

谢谢。

【问题讨论】:

    标签: javascript jquery arrays for-loop


    【解决方案1】:

    您可以随时使用Array.forEach

    dynamicArr.forEach(function(el){
       console.log(el);
    });
    

    【讨论】:

    • 这会同时给我两个值,以便我可以访问它们并进行比较吗?如果是这样,你能给我举个例子吗?
    【解决方案2】:

    希望我没有误会你,但这里有一个解决方案:

    for(i = 0; i < dynamicArr.length; i++) {
        for(j = 0; j < dynamicArr[i].length; j++) {
            // do something here..
        }
    }
    

    【讨论】:

    • 您好,感谢您的回复。我已经尝试过这种方法。这使我可以遍历内部数组:)。我需要将它们分开,以便比较它们。
    【解决方案3】:

    你应该尝试这样的事情: dyn.forEach(function(el){//dyn is the dynamic array console.log(el); //logs to console });

    【讨论】:

    • 您能否对此进行扩展并告诉我如何比较两个返回值。我可以在控制台中看到它是如何工作的,但还不知道如何使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    相关资源
    最近更新 更多