JavaScript-动态数组和循环

JavaScript - Dynamic Array and Looping

本文关键字:循环 数组 动态 JavaScript-      更新时间:2023-09-26

假设您有一个产品页面。在这个页面上有两个带选项的选择输入。

有一个是尺寸和颜色的。这可能会根据产品而变化,例如窗帘可能有尺寸、长度和颜色(三个选择菜单)。

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

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) { 
}

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

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

谢谢。

您可以始终使用Array.forEach

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

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

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

您应该尝试以下操作: dyn.forEach(function(el){//dyn is the dynamic array console.log(el); //logs to console });