将两个不同长度的阵列配对

问题描述 投票:-3回答:2

我想知道如何实现这种情况:我有2个字符串数组,让我们说一个是:

var cars = ["Saab", "Volvo", "BMW", "Mercedes", "Fiat"];

第二个是:

var colour = ["red", "blue", "green"];

我想做一个循环,例如7迭代循环从两个数组中选择7对,如下所示:

   1st iteration "Saab" "red", 
   2nd iteration "Volvo" "blue", 
   3th iteration "BMW" "green", 
   4th iteration "Mercedes" "red", 
   5th iteration "Fiat" "blue", 
   6th iteration "Saab" "green", 
   7th iterathion "Volvo" "red"

因此它将第一个数组与第二个数组匹配,如果数组没有值则从头开始。

javascript arrays loops
2个回答
2
投票

您可以计算并利用remainder operator %的优势与实际数组的长度。

var cars = ["Saab", "Volvo", "BMW", "Mercedes", "Fiat"],
    colour = ["red", "blue", "green"],
    i,
    length = 7;

for (i = 0; i < length; i++) {
    console.log(i + 1, cars[i % cars.length], colour[i % colour.length]);
}
.as-console-wrapper { max-height: 100% !important; top: 0; }

2
投票

cars迭代Array#map,并在索引(% operator (remainder))上使用i来获得匹配的颜色:

var cars = ["Saab", "Volvo", "BMW", "Mercedes", "Fiat"];
var colour = ["red", "blue", "green"];

var result = cars.map(function(car, i) {
  return [car, colour[i % colour.length]]; // convert to whatever result you need
});

console.log(result);
© www.soinside.com 2019 - 2024. All rights reserved.