jquery将num字符串转换为int

时间:2017-08-01 15:01:41

标签: jquery split parseint

如何使用包含

等数字的刺痛
  

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>

5 个答案:

答案 0 :(得分:2)

这是因为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>

答案 1 :(得分:1)

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

您可以使用jquery $.each来解析每个项目并返回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>

答案 2 :(得分:1)

在你的情况下没有意义,因为当你追加它时它会被转换回一个字符串。根据您提供的数字,转换完全没有区别。

如果您有重要信息,请参阅评论:

&#13;
&#13;
            columns: [{
                field: "OwnerFirstName ",
                title: "Owner first name",
                filterable: false,
                sortable: true
            }, {
                field: "OwnerLastName",
                title: "Owner lastname",
                filterable: false,
                sortable: true
            }]
&#13;
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));
});
&#13;
&#13;
&#13;

答案 3 :(得分:0)

您应该根据if 'sphinx' in sys.modules: path, test = '/', 'test' else: path, test = setup_test() 拆分字符串,然后迭代它以将每个元素附加到您的html元素

&#13;
&#13;
-
&#13;
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]));
}
&#13;
&#13;
&#13;

答案 4 :(得分:0)

这是因为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);