如何使用包含
等数字的刺痛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>
答案 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)
在你的情况下没有意义,因为当你追加它时它会被转换回一个字符串。根据您提供的数字,转换完全没有区别。
如果您有重要信息,请参阅评论:
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;
答案 3 :(得分:0)
您应该根据if 'sphinx' in sys.modules:
path, test = '/', 'test'
else:
path, test = setup_test()
拆分字符串,然后迭代它以将每个元素附加到您的html元素
-
&#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;
答案 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);