如果我有["-2", -1, 0, 1, 2]
,如何更改数组的值。我从文本框中获取数据,我需要在开头使用一个字符串而不是这个数组。我尝试了parseInt(array)
和eval(array)
,但没有任何效果。感谢
答案 0 :(得分:3)
答案 1 :(得分:0)
您不会解析整个数组,只需解析它们中的元素。在您的情况下parseInt(array[0])
。这将解析数组中第0位的元素(第一个元素)。
编辑:
解析其他数字系统:
// Numbers with a leading 0 use a radix of 8 (octal)
var example = parseInt('0101');
// Numbers that start with 0x use a radix of 16 (hexidecimal)
var example = parseInt('0x0101');
// Numbers starting with anything else assumes a radix of 10
var example = parseInt('101');
// Or you can specify the radix, in this case 2 (binary)
var example = parseInt('0101', 2);
消息来源: http://www.apkapps.link/questions/810611/why-do-we-need-to-use-radix
答案 2 :(得分:0)
在使用每个元素之前,您可以随时在其上运行$('input#asd3').on('load', ...
,这样您就不必担心数字是否为字符串。
答案 3 :(得分:0)
如果您只是想确保所有内容都是数字,那么您可以将所有内容映射到Number()
函数:
[-1,0,1,3,4].map(Number)
然而,这将离开" 1.23"为1.23。
要将所有内容都转换为INT,您不能直接将所有内容映射到parseInt()
,因为map实际上会传递多个参数,而parseInt将使用额外的参数来[错误地]定义基数。要使其与parseInt
一起使用,您需要返回一个仅使用第一个参数调用parse的新函数:
function mapParseInt(x) {
return parseInt(x,10);
}
["-2", -1, 0, 1, 2.2].map(mapParseInt);
或使用ES2015胖箭头功能:
["-2", -1, 0, 1, 2.2].map( x => parseInt(x,10) )
答案 4 :(得分:0)
要将所有内容都转换为INT,您不能直接将所有内容映射到parseInt(),因为map实际上会传递多个参数,而parseInt将使用额外的参数来[错误地]定义基数。要使它与parseInt一起使用,您需要返回一个仅使用第一个参数调用parse的新函数: http://www.azar.in/questions/810611/why-do-we-need-to-use-radix