模数算法通过数组

avi*_*ong 1 javascript arrays algorithm

我希望结果是3,1,0,0,但它给了我3,1,1,1而不是.我的算法在下面使用模数有什么问题吗?

points = [6,5,4,2];
var arr = [];
points.forEach(function (obj, i) {
    var a = 21;
    a = a % points[i] || "";

    arr.push(a);

});

console.log(arr);
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/ufegq7kp/

DTi*_*ing 5

In [1]: 21 % 6
Out[1]: 3

In [2]: 21 % 5
Out[2]: 1

In [3]: 21 % 4
Out[3]: 1

In [4]: 21 % 2
Out[4]: 1
Run Code Online (Sandbox Code Playgroud)

您的输出是预期输出.

不相关:您不必通过点数从索引中查找值,而是将forEach函数中的值作为obj:

var points = [6,5,4,2],
    arr = [];

points.forEach(function (obj) {
    var a = 21;
    a = a % obj || "";
    arr.push(a);
});

console.log(arr);
Run Code Online (Sandbox Code Playgroud)