-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
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 に答える
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 に答える
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 に答える