将值转换为十进制的Javascript映射函数
我有一个这样的数组将值转换为十进制的Javascript映射函数,javascript,jquery,Javascript,Jquery,我有一个这样的数组 var elements=[5614,6619,7220,7320,7830,8220,0111,0112,0113,0142,0149] 我正在将每个元素转换为字符串,以便与jquery自动完成一起使用。 我正在使用.map函数来实现这一点 elements = elements.map(String); 输出为 ["5614", "6619", "7220", "7320", "7830", "8220", "73", "74", "75", "98", "149"]
var elements=[5614,6619,7220,7320,7830,8220,0111,0112,0113,0142,0149]
我正在将每个元素转换为字符串,以便与jquery自动完成一起使用。
我正在使用.map函数来实现这一点
elements = elements.map(String);
输出为
["5614", "6619", "7220", "7320", "7830", "8220", "73", "74", "75", "98", "149"]
函数将所有这些值作为八进制值
,并将它们转换为十进制值
我不想进行此对话,也希望保留前导零,我如何才能做到这一点,请帮助
函数将011011301301142所有这些值作为八进制值,并将它们转换为十进制值
这不是函数的作用,而是:
var elements=[5614,6619,7220,7320,7830,8220,0111,0112,0113,0142,0149]
在松散模式下,如果以0
开头的数字后跟一系列八进制数字,则该数字为八进制。这就是为什么010==8
是正确的:
console.log(010==8);//true
您不能在数字类型变量上保留前导零。这不是因为字符串转换,而是因为您使用前导零定义数值,因为正如您所指出的,如果您的输入数据是数字0111
,那么像0111
这样写的数字是八进制表示法,然后你将有一个该死的困难时间“转换”到字符串“0111”`。。。由于您使用var elements=
声明了“像这样的数组”,因此我建议您编辑代码以删除前导的zerosJavaScript不保留数字的基数。一个文本011
将在IEEE 754内部表示为9
,就是这样。@greentec做的正是OP已经做的。哇。教育。谢谢T.J.克劳德