【问题标题】:jquery convert num string to intjquery将num字符串转换为int
【发布时间】:2023-04-04 05:35:02
【问题描述】:

如何获取包含诸如

之类的数字的字符串

1 - 2 - 3 - 4 - 5 - 6

并将每个数字转换为整数?

我尝试了以下方法,但它只返回第一个整数。

var a = '1 - 2 - 3 - 4 - 5 - 6';
var b = parseInt( a.split('-') );

$('#b').append(b);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id='b'></div>

【问题讨论】:

  • 在您的情况下没有意义,因为无论如何附加它都会转换回字符串。
  • @T.J.Crowder 它会删除字符串中的前导零
  • 是的,但是在附加到浏览器之前我需要对整数做一些事情。
  • @TimothyGroote:不过,问题中没有。 :-) 它也会截断浮点数,但问题中也没有。
  • parseInt 不期望数组作为 param1 - 请参阅 w3schools.com/jsref/jsref_parseInt.asp

标签: jquery split parseint


【解决方案1】:

那是因为 string.split 返回一个字符串数组。

如果您想处理 split 返回的每个单独的值,请遍历数组并在迭代时将项目解析为数字。

然后,您可以随意处理已解析的数字。 (在本例中,它将每个数字乘以 2 并附加输出)

var a = '1 - 2 - 3 - 4 - 5 - 6';
var splitarray = a.split('-')
    
for(var i=0; i < splitarray.length; i++)
{
  var valueAsInt = parseInt(splitarray[i]);
  //do whatever you want with valueAsInt, like for instance
  valueAsInt *= 2;

  //adding the br so we can see what the individual numbers are
  $('#resultDiv').append(valueAsInt + "<br />"); 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="resultDiv"></div>

【讨论】:

  • for 循环中的数字 var 来自哪里?你是说 splitarray 吗?
  • 我搞砸了。现在已经修好了;)
  • 谢谢蒂莫西·格鲁特!
【解决方案2】:

parseInt 将转换单个字符串,而不是字符串数组。

您可以使用 jquery $.each 来解析每个项目并返回 int 的数组。

(将其放入 html 中,如问题和下面的 sn-p 并没有太大意义,因为它将转换回 html 的字符串,但可以在数组中操作一次值)。

var a = '1 - 2 - 3 - 4 - 5 - 6';
var arr = $.each(a.split('-'), function() { return parseInt(this, 10); });

var a = '1 - 2 - 3 - 4 - 5 - 6';
var b = $.each(a.split('-'), function() { return parseInt(this, 10); });
// b is now an array of ints
$("#result").html(b.join(","))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='result'>
</div>

【讨论】:

    【解决方案3】:

    在您的情况下没有意义,因为无论如何附加它都会转换回字符串。根据您提供的数字,转换将没有任何区别。

    如果您有重要的,请参阅 cmets:

    var a = '1 - 2 - 3 - 4 - 5 - 6';
    // Let's not look this up every time
    var b = $("#b");
    // Split and loop through the parts
    a.split('-').forEach(function(entry) {
      // Append each part after converting to int.
      // Note the 10 at the end: That's the number base.
      b.append(parseInt(entry, 10));
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <div id='b'></div>

    【讨论】:

      【解决方案4】:

      您应该根据- 拆分字符串,然后对其进行迭代以将每个元素附加到您的 html 元素中

      var a = '1 - 2 - 3 - 4 - 5 - 6';
      var arr = a.split(' - ');
      var ele=$('#b');
      for(var i=0; i < arr.length; i++)
      {
          ele.append(parseInt(arr[i]));
      }
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
      <div id='b'></div>

      【讨论】:

        【解决方案5】:

        这是因为 split() 函数返回数组和 parseInt() 不支持输入数组。

        你必须一个一个地解析数组的每个元素。

        试试这个:

        var a = '1 - 2 - 3 - 4 - 5 - 6';
        // Split string into array
        var b = a.split('-');
        
        var c = [];
        
        // convert from string to integer and push it into c array
        b.forEach(function (item, index, arr) {
           c.push(parseInt(item.trim()));
        });
        
        $('#b').append(c);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-10-02
          • 2011-03-06
          • 1970-01-01
          • 2018-07-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多