【问题标题】:Loop through specific indexes in array循环遍历数组中的特定索引
【发布时间】:2016-05-18 19:39:25
【问题描述】:

我有一张包含产品及其变体的表格。

每个表都有一个索引,例如:

[0] Product 1

[1] Variant 1

[2] Variant 2

[3] Product 2

等等。

我已将所有变体的索引及其值分配给关联数组,例如:

[1] Variant 1 : 13

[2] Variant 2 : 15

[18] Variant 3: 32

现在我想只使用我在数组中获得的索引来遍历表。

有没有办法使用特定索引循环遍历元素? (所以我不必遍历整个事情并在匹配时执行我想要的内容)。类似于这个伪代码的东西:

loop through my_table on index = [1,2,18]

编辑为 Joseph Marikle:

数组的代码部分是这样的:

var variants_index = [];
  $.each($('.variant'),function(){
    variants_index[$(this).index()] = $(this).find('td').eq(1).text();
  });

输入 typeof(variants_index) 我们得到:object 并在控制台中输入 var,我们得到 Array,输入 Array.isArray(variants_index) 我们得到 true

【问题讨论】:

  • 只是想知道,为什么不使用二维数组?
  • 我正在尝试将我的问题写成一个更简单的例子。我实际上正在做的事情要复杂一些。
  • 如果您已经生成了一个包含您需要查找的索引的数组,为什么不直接使用该循环来完成您需要的工作?
  • 在尝试了这种方法之后,我可能会这样做.. 这是一个真正的问题和好奇心的混合体。
  • @Onilol 谢谢。对数组使用typeof 将始终在javascript 中返回“对象”。要测试变量是否包含数组,您应该使用Array.isArray(obj)。您的情况正如我在第一条评论中所描述的那样。以下两个答案都是我将如何完成您正在尝试做的事情。

标签: javascript jquery arrays loops


【解决方案1】:

您可以遍历您感兴趣的索引数组,并将它们的值用作包含产品信息的数组的索引。

var indexToCheck = [1,2,18];

for(var i = 0; i < indexToCheck.length; i++){
  var productInfo = myProducts[indexToCheck[i]];
}

【讨论】:

    【解决方案2】:

    在 index = [1,2,8] 上循环遍历 my_table(为简单起见,将 18 更改为 8)

    既然这是问题的核心,那就试着解决它吧。

    index = [1,2,8]
    my_table = [5,4,6,7,3,8,2,9,0,1]
    for (i=0;i<index.length;i++){
        console.log(my_table[index[i]]);
    }
    

    这将从“索引”中获取数字,将它们用作访问 my_table 中位置的索引

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 1970-01-01
      • 2022-06-30
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      相关资源
      最近更新 更多