Jquery 陷入困境

Jquery 陷入困境,jquery,arrays,Jquery,Arrays,我有一个称为CM的数字数组,然后我想将每个数组项计算为另一个数字的百分比,让我们称之为totalOfCM,即数组CM中所有数字的总和 是否有一种方法可以循环通过该数组并将结果放入另一个数组,而无需每次手动进行计算 这就是我目前正在做的,但我相信这会更容易: $(document).ready(function () { var CM = [0,5,2,0,0,0]; var totalOfCM = 0; for (var i = 0; i < CM.length

我有一个称为CM的数字数组,然后我想将每个数组项计算为另一个数字的百分比,让我们称之为totalOfCM,即数组CM中所有数字的总和

是否有一种方法可以循环通过该数组并将结果放入另一个数组,而无需每次手动进行计算

这就是我目前正在做的,但我相信这会更容易:

$(document).ready(function () {

    var CM = [0,5,2,0,0,0];

    var totalOfCM = 0;
    for (var i = 0; i < CM.length; i++) {
        totalOfCM += CM[i] << 0;
    }

    var percentage1CM = parseInt((CM[0] / totalOfCM) * 100)
    var percentage2CM = parseInt((CM[1] / totalOfCM) * 100)
    var percentage3CM = parseInt((CM[2] / totalOfCM) * 100)
    var percentage4CM = parseInt((CM[3] / totalOfCM) * 100)
    var percentage5CM = parseInt((CM[4] / totalOfCM) * 100)
    var percentage6CM = parseInt((CM[5] / totalOfCM) * 100)

    alert(percentage1CM);
    alert(percentage2CM);
    alert(percentage3CM);
    alert(percentage4CM);
    alert(percentage5CM);
    alert(percentage6CM);
});
我当前的Jquery首先计算该数组的总和,然后我手动计算每个数组项的百分比:下面是我所做工作的一个示例

请让我知道,如果我需要做更多的解释

有人能给我指一下正确的方向吗

谢谢你的磨坊

迈克

这应该可以做到:

var CM = [0,5,2,0,0,0];

// calculate sum first
var sum = CM.reduce(function(prev, current) {
    return prev + current;
}, 0);

var percentages = CM.map(function(value) {
    return value * 100 / sum;
});
之后,百分比是一个数组,其百分比对应于CM的每个值。

使用一个简单的for循环

试着用


有什么特别的原因让你做一个“无”的事吗?我从另一个“无”的线索中找到了。我是Jqeury的新手。hahaThere没有使用问题中唯一的jQuery是文档就绪事件处理程序。请重新标记您的问题。没有清楚的说明
var percentage = []; //Declare an array
for (var i = 0; i < CM.length; i++) {
  percentage.push(parseInt((CM[i] / totalOfCM) * 100)); //Add calculated percentage
}
$(document).ready(function () {
    var CM = [0, 5, 2, 0, 0, 0];
    var totalOfCM = 0;
    for (var i = 0; i < CM.length; i++) {
        totalOfCM += CM[i] << 0;
    }
    var arr=$(CM).map(function(i,v){
        return v*100/totalOfCM;
    }).get();
    console.log(arr);// your final array
});