jquery 将 num 字符串转换为 int

jquery convert num string to int

如何获取包含

等数字的字符串

1 - 2 - 3 - 4 - 5 - 6

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

我试过以下方法,但它只是 returns 第一个整数。

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>

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

如果您想处理 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>

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

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

(将其放入问题中的 html 和下面的代码片段中并没有多大意义,因为它会转换回 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>

你的情况没有意义,因为无论如何附加它时它都会转换回字符串。对于您提供的数字,转换完全没有影响。

如果您有重要的地方,请参阅评论:

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>

您应该根据 - 拆分您的字符串,然后迭代它以将每个元素附加到您的 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>

这是因为 split() 函数 return 数组和 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);