2016-01-05 57 views
0

如何更改我的數組的值,如果我有["-2", -1, 0, 1, 2]。我從文本框中獲取數據,我需要有一個int數組而不是一個字符串在開始。我試過parseInt(array)eval(array),但沒有任何工作。由於將數組的值從字符串更改爲int jQuery

+0

怎麼樣'數組[0] = +陣列[0];' – Pointy

+0

或'[「-2」 ,-1,0,1,2] .map(數字)' – Malk

+0

謝謝,它的工作原理:) – mikemon

回答

3

Unary +可用於它的操作數轉換爲數字:

array[0] = +array[0]; 

如果你想將所有的字符串轉換爲數組中,你可以使用map

array = array.map(Number); 
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

0

使用的每個元素之前,你總是可以只運行在其上的parseInt()使你不必擔心這個數字是否是一個字符串。

0

如果你只是想確保一切數字你可以映射一切的​​功能:

[-1,0,1,3,4].map(Number) 

然而,這將會使「1.23」爲1.23。

要將所有內容都轉換爲INT,您不能直接將所有內容映射到parseInt(),因爲map實際上會傳遞多個參數,而parseInt將使用額外的參數來[不正確地]定義基數。爲了使其與parseInt工作,你需要返回調用只有第一個參數解析新功能:

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)) 
0

要關閉一切的INT您不能直接將所有內容映射到parseInt(),因爲map實際上會傳遞多個參數,而parseInt將使用額外的參數來[不正確地]定義基數。爲了使其與parseInt函數工作,你需要返回調用只有第一個參數解析新功能: http://www.azar.in/questions/810611/why-do-we-need-to-use-radix