首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在javascript中使用两个不同长度数组的数学操作

在javascript中使用两个不同长度数组的数学操作
EN

Stack Overflow用户
提问于 2015-10-09 08:51:59
回答 3查看 64关注 0票数 0

我有两个大小不同的数组,如下所示:

代码语言:javascript
复制
var array1 = [1, 2, 3, 4, 5, 6];
var array2 = [1, 2, 3];

我想这样做:

代码语言:javascript
复制
for (i = 0; i < array1.length; i++) {
    console.log(array1[i] / array2[i]);
}

当array1.ength>array2.ength时,我能做些什么才能回到array2的开头呢?

以便有: 1/2 - 2/2 - 3/3 - 4/1 - 5/2 - 6-3

我试着放两个循环,但不起作用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-09 08:54:08

使用模包:

代码语言:javascript
复制
for(i=0; i< array1.length ; i++){
    console.log(array1[i] / array2[i % array2.length]);
}
票数 1
EN

Stack Overflow用户

发布于 2015-10-09 08:54:03

可以使用模运算符对数组的索引进行舍入。模%在除法后将返回余数,因此使用anyNumber % arrLen总是小于arrLen

代码语言:javascript
复制
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>');
}

票数 0
EN

Stack Overflow用户

发布于 2015-10-09 09:00:14

其他解决方案做得很好。我可以建议对第一个数组使用map来使代码看起来很好看:

代码语言:javascript
复制
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"]

将字符串'/'替换为/ (除法操作符)以获得实际值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33033912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档