我有2个不同大小的数组,如下所示:
var array1 = [1, 2, 3, 4, 5, 6];
var array2 = [1, 2, 3];
我想这样做:
for (i = 0; i < array1.length; i++) {
console.log(array1[i] / array2[i]);
}
当array1.length&gt;时,我该怎么做才能回到array2的开头? array2.length?
为了获得:1/2 - 2/2 - 3/3 - 4/1 - 5/2 - 6-3
我尝试放置2个循环,但它不起作用。
答案 0 :(得分:1)
使用modulo环绕:
for(i=0; i< array1.length ; i++){
console.log(array1[i] / array2[i % array2.length]);
}
答案 1 :(得分:0)
您可以使用模运算符来舍入数组的索引。模数%
将在除法后返回余数,因此使用anyNumber % arrLen
将始终小于arrLen
。
var array1 = [1, 2, 3, 4, 5, 6];
var array2 = [1, 2, 3];
var firstArrLen = array1.length,
secondArrayLen = array2.length;
for (i = 0; i < Math.max(firstArrLen, secondArrayLen); i++) {
document.write('<pre>' + (array1[i % firstArrLen] / array2[i % secondArrayLen]) + '</pre>');
}
&#13;
答案 2 :(得分:0)
其他解决方案可以很好地完成工作。我建议使用map
作为第一个数组,使代码看起来不错:
var result = array1.map(function(e, i) {
return e + '/' + array2[i % array2.length];
});
console.log( result ); // ["1/1", "2/2", "3/3", "4/1", "5/2", "6/3"]
将字符串'/'
替换为/
(除法运算符)以获取实际值。