字符串轉數字
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]
標准二維數組變一維數組的方法
方法一
利用es5
的arr.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];
其實以上的三種方法都是一個原理,就是先把數組轉化為字符串,然后在對字符串進行操作,最終達到把多維數組中的數據轉化為一維數組。但是都將整型轉成了字符串。