把一個字符串13579先變成Array——[1, 3, 5, 7, 9],再利用reduce()就能夠寫出一個把字符串轉換爲Number的函數。數組
function string2int(s) { let arr=s.split('') arr=arr.map(v=>{ return +v }) return arr.reduce(function(x,y){ return x*10+y }) } //string2int('123')===123 true
請把用戶輸入的不規範的英文名字,變爲首字母大寫,其餘小寫的規範名字。輸入:['adam', 'LISA', 'barT'],輸出:['Adam', 'Lisa', 'Bart']函數
function normalize(arr){ arr= arr.map((v,index,array)=>{ let str=array[index].substring(1,array[index].length); console.log('str',str) let a=v[0].toUpperCase()+ str.toLowerCase() return a; }) return arr } if (normalize(['ADam', 'LISA', 'barT']).toString() === ['Adam', 'Lisa', 'Bart'].toString()) { console.log('經過!'); } else { console.log('失敗!'); } //經過
和map()相似,Array的filter()也接收一個函數。和map()不一樣的是,filter()把傳入的函數依次做用於每一個元素,而後根據返回值是true仍是false決定保留仍是丟棄該元素。
求100之內素數測試
function get_primes(arr) { return arr.filter(function(value){ // 1和value自己不用考慮 for(let i=2; i<value; i++){ if(value%i===0){return false;} } return value>1; }); } // 測試: var x, r, arr = []; for (x = 1; x < 100; x++) { arr.push(x); } r = get_primes(arr); if (r.toString() === [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97].toString()) { console.log('測試經過!'); } else { console.log('測試失敗: ' + r.toString()); }
var arra=[7,2,3,0] arra.sort((x,y)=>{ if(x>y){ return 1 } if(x<y){ return -1 } return 0 }) console.log(arra) // [0, 2, 3, 7]