我正在尝试将数组中的所有项目相加。我已经尝试过调整其他代码以适应这一点,但到目前为止我还没有多少运气。我对此非常陌生。
var coinArray = new Array("penny", "penny", "penny", "penny", "nickle", "nickle", "nickle", "dime", "dime", "quarter", "quarter", "half dollar");
我会很感激任何帮助。
我正在尝试将数组中的所有项目相加。我已经尝试过调整其他代码以适应这一点,但到目前为止我还没有多少运气。我对此非常陌生。
var coinArray = new Array("penny", "penny", "penny", "penny", "nickle", "nickle", "nickle", "dime", "dime", "quarter", "quarter", "half dollar");
我会很感激任何帮助。
Array.prototype.reduce
与键值对一起是一种干净的方法。
var coins = {
penny: 1,
nickle: 5,
dime: 10,
quarter: 25,
"half dollar": 50
};
var result = coinArray.reduce(function(p, v) {
return p + coins[v];
}, 0);
alert(result); // 139
演示:http: //jsfiddle.net/r2G2L/
如果您的意思是计算该数组中有多少钱,则需要分配值,我更喜欢使用对象。请注意,它应该是镍,但我保持不变。
var amount = { "penny": 1, "nickle": 5, "dime": 10, "quarter": 25, "half dollar": 50 };
然后遍历数组求和到一个total
变量
var total = 0;
for (var i = 0; i < coinArray.length; i++) {
// Check if coin actually exists in our values object
if(amount.hasOwnProperty(coinArray[i].toLowerCase())) {
total += amount[coinArray[i].toLowerCase()];
}
}
演示:http: //jsfiddle.net/NCch8/2/
total = 0;
for(i=0; i<coinArray.length; i++){
switch(coinArray[i]){
case 'penny':
total+1;
break;
case 'nickle':
total+5;
break;
case 'quarter':
total+25;
break;
}
/* OTHER CASES... */
}
我想在个人笔记上补充一点,这似乎与 Comp-Sci 课堂作业相比很多 :-)
var coins = { 'penny': .01, 'nickle': .05, 'dime': .10, 'quarter': .25, 'half dollar': .50};
var coinArray = new Array("penny", "penny", "penny", "penny", "nickle", "nickle", "nickle", "dime", "dime", "quarter", "quarter", "half dollar");
var total = 0;
for (var i = 0; i < coinrArray.length; i++)
total += coins[coinrArray[i]];
使用 jquery..
var coinArray = new Array("penny", "penny", "penny", "penny", "nickle", "nickle", "nickle", "dime", "dime", "quarter", "quarter", "half dollar");
var total = {};
$.each(coinArray, function(item) {
var coin = coinArray[item];
if (!total[coin]) total[coin] = 0;
total[coin] += 1;
});
您可以使用 push 方法将元素添加到数组
var coinArray = new Array("penny", "penny", "penny", "penny", "nickle", "nickle", "nickle", "dime", "dime", "quarter", "quarter", "half dollar");
coinArray.push("cent");