添加数组中的项目数

时间:2012-05-30 00:42:49

标签: javascript arraylist

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

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

我很感激任何帮助。

6 个答案:

答案 0 :(得分: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

DEMO: http://jsfiddle.net/r2G2L/

答案 1 :(得分: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类赋值,这似乎很多: - )

答案 2 :(得分: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/

答案 3 :(得分: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]];

DEMO

答案 4 :(得分: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;


});

答案 5 :(得分:-1)

您可以使用push方法

将元素添加到数组中
    var coinArray = new Array("penny", "penny", "penny", "penny", "nickle", "nickle", "nickle", "dime", "dime", "quarter", "quarter", "half dollar");
coinArray.push("cent");