我循环遍历3个数组,在每个数组中找到'actionTimings'并添加actionTimings值(值都是数字)。 如何将我获得的3个值分配给新数组?这是我到目前为止所拥有的......
$.each(dinnerComponents, function(intIndex, component) {
totalCookTime = 0;
for ( var i = 0; i < component.actionTimings.length; i++ ) {
totalCookTime += component.actionTimings[i];
}
});
我试过了:
totalCookTime = new Array(totalCookTime);
但是这个数组包含3组逗号(,)。似乎是逗号数= totalCookTime-1。与逗号分隔的值有什么关系?我对阵列的了解有点受到限制。
感谢您的帮助。
答案 0 :(得分:3)
您可以使用数组push
方法:
var grandTotals = []; // will contain the sub-totals for each 'dinerComponent'
$.each(dinnerComponents, function(intIndex, component) {
var totalCookTime = 0;
for ( var i = 0; i < component.actionTimings.length; i++ ) {
totalCookTime += +component.actionTimings[i]; // unary plus to ensure Number
}
grandTotals.push(totalCookTime);
});
答案 1 :(得分:0)
你的问题基本上是新的Array(n)创建一个带有“槽”的数组。
无论如何,最好的办法是使用jQuery的“map”方法,将一个数组转换为另一个数组:
var totalCookTime = $(dinnerComponents).map(function (component) {
var cookTime = 0;
$(component.actionTimings).each(function (index,timing) {
cookTime += timing;
})
return cookTime;
}).get();
(最终的.get()返回一个实际的数组,而不是一个行为类似于数组的特殊jQuery对象。)