【问题标题】:How to strip the dollar sign from an array and keep only numbers? js如何从数组中去除美元符号并只保留数字? js
【发布时间】:2019-02-23 21:09:33
【问题描述】:

使用下面的代码,我试图在 javascript 中按类名获取元素,并将它们存储在一个数组中。

这是我得到的输出:“我得到这个输出初始价格数组 $ 30.00,$ 20.00,$ 40.00”

我的问题是如何从数组中去除 $ 符号并仅存储数字?像这样 初始价格 = [20, 30, 40]?

var initialprices = document.getElementsByClassName("price");
var initialprice = [];
flag = false;
//for every element in initialprices array get their value from innerhtml
for (var i = 0; i < initialprices.length; i++) {
  initialprice.push(initialprices[i].innerHTML);
  console.log("the initial prices array " + initialprice);
}
<p class ="price">$ 30.00</p>
<p class ="price">$ 20.00</p>
<p class ="price">$ 40.00</p>

【问题讨论】:

  • 如果它在你的控制之下;最好在没有美元符号的情况下存储它们并在向人类展示它们时添加它。
  • Initialprice 被声明为一个空数组来存储 intitialpriceS 数组元素的值。

标签: javascript html


【解决方案1】:

使用replace,然后使用一元加号转换为数字。 Array.from 函数可以将 DOM 元素映射到这些数字:

var initialprices = Array.from(document.querySelectorAll(".price"),
                               price => +price.textContent.replace("$", ""));
console.log(initialprices);
<p class ="price">$ 30.00</p>
<p class ="price">$ 20.00</p>
<p class ="price">$ 40.00</p>

【讨论】:

  • @MantasStanionis 如果它帮助您解决问题,请将其标记为正确答案。干杯。
【解决方案2】:

在添加到数组之前去除不需要的字符并解析为数字:

var initialprices = document.getElementsByClassName("price");
var initialpriceArray = [];
for (var i = 0; i < initialprices.length; i++) {
  initialpriceArray.push(parseFloat(initialprices[i].innerHTML.replace(/\$\s/g, '')));
}
console.log("initialpriceArray", initialpriceArray);
<p class="price">$ 30.00</p>
<p class="price">$ 20.00</p>
<p class="price">$ 40.00</p>

【讨论】:

    【解决方案3】:

    在这里您将价格转换为数字:

    var initialprices = document.getElementsByClassName("price");
    
    flag = false;
    //for every element in initialprices array get their value from innerhtml
    for (var i = 0; i < initialprices.length; i++) {
      initialprice.push(
        parseFloat(initialprices[i].innerHTML.replace("$", ""))
      );
      console.log("the initial prices array " + initialprice);
    }
    

    【讨论】:

      猜你喜欢
      • 2014-12-30
      • 2011-05-11
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多