如何在javascript中添加数组的货币值总和

时间:2018-02-20 19:28:06

标签: javascript protractor

如何添加像这样的数组的货币值

array = [ '$0',
  '$0',
  '$14,792',
  '$152,445',
  '$1,581,033',
  '$2,988,978',
  '$4,226,419',
  '$7,254,960',
  '$10,726,945',
  '$12,657,402',
  '$35,215,787',
  '$37,968,368',
  '$7,648,445',
  '$364,237',
  '$390,395',
  '$306,080',
  '$3,641,253',
  '$4,328,363',
  '$1,360,664' ]

这里是我定义的方法,我面临的唯一问题是在array_sum的第二个问题是没有添加我从数据变量获得的值。

exports.GetMonthsFWSeasonFullSeasonValues = () => {
  var promises = [];
  var array_sum = 0;
  for(var month_index = 9; month_index <= 27 ; month_index++){
    const elm_xpath = utils.GetXpathForSubCategory(chosen_season_index, month_index);
    promises.push(element(by.xpath(elm_xpath)).getText());
  }
  return Promise.all(promises).then(function(data){
    if(data != null) {
      for (var array_index = 0; array_index < data.length; array_index++){
        array_sum += data[array_index];
        console.log('sum of values from months',array_sum);
      }
    } else {
      return null;
    }
  });
};

1 个答案:

答案 0 :(得分:0)

这里的问题是你试图添加两个字符串。 +运算符在JS中重载,因此使用数字它会添加它们,但是使用字符串将它们连接起来。你需要使用parseInt或parseFloat将它们转换为整数或浮点数,并删除逗号和$符号,如:

var num = '$1,100'
parseInt(num.replace(/[$,]/g, ''))

如果你打印它会给1100。在数字格式之后,您可以将它们相加。

或者,如果您可以选择将数字中的数字存储为数字,而不是从字符串格式开始,那就去吧。这么容易。