-1

我正在尝试将数组中的所有项目相加。我已经尝试过调整其他代码以适应这一点,但到目前为止我还没有多少运气。我对此非常陌生。

var coinArray = new Array("penny", "penny", "penny", "penny", "nickle", "nickle", "nickle",          "dime", "dime", "quarter", "quarter", "half dollar");

我会很感激任何帮助。

4

6 回答 6

2

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/

于 2012-05-30T00:55:38.490 回答
1

如果您的意思是计算该数组中有多少钱,则需要分配值,我更喜欢使用对象。请注意,它应该是,但我保持不变。

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/

于 2012-05-30T00:52:45.140 回答
1
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 课堂作业相比很多 :-)

于 2012-05-30T00:49:06.910 回答
0
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]];

演示

于 2012-05-30T00:50:38.057 回答
0

使用 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;


});
于 2012-05-30T01:03:17.203 回答
-1

您可以使用 push 方法将元素添加到数组

    var coinArray = new Array("penny", "penny", "penny", "penny", "nickle", "nickle", "nickle", "dime", "dime", "quarter", "quarter", "half dollar");
coinArray.push("cent");
于 2012-05-30T00:47:08.857 回答