1. 程式人生 > >【持續更新】JS codewars題目

【持續更新】JS codewars題目

1.在這個kata中,您將建立一個函式,該函式獲取非負整數和字串的列表,並返回一個新的列表,其中過濾掉了字串

mycode

    	
    	function filter_list(l) {
    		var arr2 =[];//arr2=new Array();
    		for(var i=0;i<l.length;i++){
    			if(typeof(l[i])=="number"){
    				arr2.push(l[i]);
    			}	
    		}
    		return arr2;
  // Return a new array with the strings filtered out
}

bestcode

function filter_list(l) {
  return l.filter(function(v) {return typeof v == 'number'})
}

filter方法 filter() 方法建立一個新的陣列,新陣列中的元素是通過檢查指定陣列中符合條件的所有元素。 array.filter(function(currentValue,index,arr), thisValue)

和map()類似,Array的filter()也接收一個函式

var arr = [1, 2, 4, 5, 6, 9, 10, 15];
var r = arr.filter(function (x) {
    return x % 2 !== 0;
});

2.給定兩個整數a和b,可以是正數或負數,找到包含它們之間的所有數字的總和並返回它。如果兩個數字相等則返回a或b。 mycode(其實就是等差數列求和。。。)

function GetSum( a,b )
{
   let min = Math.min(a,b);
   let max = Math.max(a,b);

 	return (max+min)*(max-min+1)/2;
} 

bestcode

const GetSum = (a, b) => {
  let min = Math.min(a, b),
      max = Math.max(a, b);
  return
(max - min + 1) * (min + max) / 2; }