如何遍历包含小于迭代器值的数组

Posted

技术标签:

【中文标题】如何遍历包含小于迭代器值的数组【英文标题】:How to iterate through an array which contain less than the iterator value 【发布时间】:2021-06-12 19:55:09 【问题描述】:

标题有点混乱,很抱歉,所以我有一个数组,其中一个数组包含的数组比第二个数组多

   x = [1,2,3,4,5];
    y =  [
          x: "test1",
          y: "test2",
          z: "test3",
          w: `test4`
        ] 

所以我想做的是例如

 for (let i = 0; i < x.length; i++) 
     console.log(y[i])

这只会注销第一次,但我想要的是记录 y 和 x 长度希望这足够清楚

【问题讨论】:

【参考方案1】:

您可以使用余数运算符从较短的数组中获取相应的项目:

const x = [1, 2, 3, 4, 5];
const y = ["x":"test1","y":"test2","z":"test3","w":"test4","x":"test21","y":"test22","z":"test23","w":"test24"]

for (let i = 0; i < x.length; i++) 
  const idx = i % y.length;
  console.log(y[idx])

或者你可以使用y数组的最后一个索引,如果当前i值超过y数组最后一个索引的长度:

const x = [1, 2, 3, 4, 5];
const y = ["x":"test1","y":"test2","z":"test3","w":"test4","x":"test21","y":"test22","z":"test23","w":"test24"]

for (let i = 0; i < x.length; i++) 
  const idx = Math.min(i, y.length - 1)
  console.log(y[idx])

【讨论】:

以上是关于如何遍历包含小于迭代器值的数组的主要内容,如果未能解决你的问题,请参考以下文章

用 std::min 将迭代器值钳位到 end()

传递迭代器值而不是引用函数

在 EventHandler 中使用 foreach 迭代器值 [重复]

为啥 g++ 需要 -fpermissive 标志来在 c++ 中打印迭代器值? [关闭]

迭代器对象numpy.nditer在数组上进行迭代——修改数组的值

迭代器