js各種數字類型互轉的方法


 字符串轉數字

1.當字符串中是純數字

例如:var s = '234';

   /********** 字符串在運算操作中會被當做數字類型來處理 ***************/ 

   s *= 1;  

   /******* string的兩個轉換函數,只對string有效 ********/

    parseInt(s); // 234

    parseFloat(s); //234

   /************ 強制類型轉換 *********************/

    Number(s); // 234 

2.當字符串是數字加字母等非數字

例如: var s = '234string';

   parseInt(s); //234

   parseFloat(s);  //234.0

parseInt() 函數從string的開始解析,返回一個整數
parseInt('123') : 返回 123;
parseInt('1234xxx') : 返回 1234;
parseInt('123.456') : 返回 123;
parseInt('1 2 3') : 返回 1;字符串的情況,自會返回第一個數
parseInt('bb cc 12') : 返回 NaN;字符串第一個不是數,返回nan
parseInt('123' 321) : 返回 321;
parseInt("AF", 16); 返回 175;會自動把二進制十六進制八進制的轉化成數字

如果解析不到數字,則將返回一個NaN的值,可以用isNaN()函數來檢測;

parseFloat()只會返回小數

 

js類型強轉換

通過String(),Number(),Boolean()函數強制轉換

var str=123; var str1='123'; console.log(typeof str); console.log(typeof str1); console.log(typeof String(str)); console.log(typeof Number(str1));

輸出

 number string string number

 

 數組與字符串相互轉換

1、數組轉字符串

需要將數組元素用某個字符連接成字符串,示例代碼如下:

var a, b,c; 
a = new Array(a,b,c,d,e); 
b = a.join('-'); //a-b-c-d-e  使用-拼接數組元素
c = a.join(''); //abcde

 

2、字符串轉數組

實現方法為將字符串按某個字符切割成若干個字符串,並以數組形式返回,示例代碼如下:

var str = 'ab+c+de';
var a = str.split('+'); // [ab, c, de]
var b = str.split(''); //[a, b, +, c, +, d, e]

 

標准二維數組變一維數組的方法

方法一

利用es5arr.reduce(callback[, initialValue])實現

var arr1 = [[0, 1], [2, 3], [4, 5]]; var arr2 = arr1.reduce(function (a, b) { return a.concat(b)} ); // arr2 [0, 1, 2, 3, 4, 5]

方法二

利用es6

var arr1 = [[0, 1], [2, 3], [4, 5]]; function flatten(arr) { return [].concat( ...arr.map(x => Array.isArray(x) ? flatten(x) : x) ) } var arr2 = flatten(arr1); // arr2 [0, 1, 2, 3, 4, 5] 優點: 多維數組也可以 比如:var arr = [[1,2],3,[[[4], 5]]]

方法三

利用apply實現

var arr1 = [[0, 1], [2, 3], [4, 5]]; var arr2 = [].concat.apply([], arr1); // arr2 [0, 1, 2, 3, 4, 5]

方法四

   1.  通過將數組轉變成字符串,利用str.split(',')實現。缺點是數組元素都變字符串了

var arr1 = [[0, 1], [2, 3], [4, 5]]; var arr2 = (arr1 + '').split(','); var arr2 = arr.toString().split(','); var arr2 = arr.join().split(','); // arr2 ["0", "1", "2", "3", "4", "5"]

        方法二:使用toString()

        toString() 方法可把一個邏輯值轉換為字符串,並返回結果。

        var a = [1,3,4,5,[6,7,9],[2],[5]];

        a = a.toString().split(",");

         輸出結果a=[1,3,4,5,6,7,9,2,5];

        方法三:空字符串

         var a = [1,3,4,5,[6,7,9],[2],[5]];

         a = (a+'').split(',');

        輸出結果a=[1,3,4,5,6,7,9,2,5];

        其實以上的三種方法都是一個原理,就是先把數組轉化為字符串,然后在對字符串進行操作,最終達到把多維數組中的數據轉化為一維數組。但是都將整型轉成了字符串。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM