['1','2','3'].map(parseInt)
輸出什麼,爲何?['1','2','3'].map(parseInt)//[1,NaN,NaN]
// map有三個參數:數組元素,元素索引,數組自己
// parseInt有兩個參數,元素自己以及進制parseInt(string,radix)
`['1','2','3'].map(parseInt);
['1','2','3'].map(function(item,index,array){數組
return parseInt(item,index);
});`
parseInt("1",0); => 1
parseInt("2",1); => NaN
parseInt("3",2); => NaNapp
語法:parseInt(string , radix)dom
參數:radix學習
可選。表示要解析的數字的基數。該值介於 2 ~ 36 之間。
若是該參數小於 2 或者大於 36,則 parseInt() 將返回 NaN。
當參數 radix 的值爲 0或沒有設置該參數時,parseInt() 會根據 string 來判斷數字的基數。若是參數string以 「0x」 或 「0X」 開頭,將以 16 爲基數。若是 string 以 1 ~ 9 的數字開頭,parseInt() 將把它解析爲十進制的整數。
['2018-03-05', '2013-06-12','2019-03-12','2018-03-05','2014-02-22']
去重且排序let arr = [...new Set(['2018-03-05', '2013-06-12','2019-03-12','2018-03-05','2014-02-22'])].sort(function(a,b){ return a<b ? -1:1; }) //["2013-06-12", "2014-02-22", "2018-03-05", "2019-03-12"]
方法一prototype
var arr = [1, 1, '', '', 'a', 'a', true, true, 'true', 'true', false, false, 'false', 'false'] function uniqueArray(array) { var arr1 = [] for (let i = 1; i < array.length; i++) { if (arr1.indexOf(array[i]) === -1) { arr1.push(array[i]) } } console.log(arr1)// [1, "", "a", true, "true", false, "false"] return arr1 } uniqueArray(arr)
方法二code
var arr={'0':null,'1':null,'2':'','3':'','4':4,'5':4,length:'6'} function uniqueArray(array) { if (Array.isArray(array)) { array1=array } else if(array.length>0){ var array1 = Array.prototype.slice.call(array) }else{ console("參數必須是數組或類數組對象") return } var arr1 = [] for (let i = 1; i < array1.length; i++) { if (arr1.indexOf(array1[i]) === -1) { arr1.push(array1[i]) } } console.log(arr1)//[null, "", 4] return arr1 } uniqueArray(arr)
方法三對象
var arr = [1, 1, ' ', ' ', 'a', 'a', undefined, undefined, null, null] function uniqueArrar(array) { if (Array.isArray(array) && array.length >1){ var temp=[] array.forEach(function(value,index){ if(temp.indexOf(value)===-1){ temp.push(value) } }) } return temp } uniqueArrar(arr)//[1, " ", "a", undefined, null]
[1,2,3,4,5,'6',7,'8','a','b','z']
實現亂序let tempArr = [1, 5, '6', 7, '8', 'a', 'b', 'z'].sort(function () { return Math.random() > 0.5 ? -1 : 1; })
[1, 10, 11, -1, 8, 9]
內最大值與最小值var arr = [1, 10, 11, -1, 8, 9] function MaxMinPlus(arr) { if( Array.isArray(arr)){ var max=Math.max.apply(null, arr) var min=Math.min.apply(null, arr) } console.log(max)//11 console.log(min)//-1 } MaxMinPlus(arr)
若是是類數組,可使用Array.prototype.slice.call()
的方法轉換爲數組排序
var obj = [ {age:4,name:'張三'},{age:3,name:'李四'},{age:5,name:'王五'},{age:1,name:'趙二'} ] var obj1 = obj.sort(function(a,b){ return a.age - b.age; }) console.log(obj1)