1、求出1 2018中所有含8的數字,使用數組的reduce、map、filter方法,如1 10中:8;1 20中:8,18; 最後拼湊著使用了三個方法,完成了這個題目,不知道題目我是不是沒理解清楚,是必須用到這三個函數還是只用其中之一就可,如果只用reduce,也可以實現,如下 2、解析url中 ...
1、求出1-2018中所有含8的數字,使用數組的reduce、map、filter方法,如1-10中:8;1-20中:8,18;
//生成0-2018的數組
var arr = Object.keys(Array.apply(null, {length:2019})).map(function(item){
return +item;
})
//刪除0
arr.shift();
//使用filter加正則刪選出含8的數字
var mid_result = arr.filter((res) => {
if(/[8]/.test(res)){
return res;
}
})
//利用reduce函數的arr參數求出數組中數的個數
var result = mid_result.reduce((data,currentVal,index,arr)=>{
return arr.length;
},0)
console.log(result);
最後拼湊著使用了三個方法,完成了這個題目,不知道題目我是不是沒理解清楚,是必須用到這三個函數還是只用其中之一就可,如果只用reduce,也可以實現,如下
var arr = [];
for ( i = 1; i < 2019; i++ ){
arr.push(i);
}
var result = arr.reduce((sum,currentVal)=>{
if(/[8]/.test(currentVal)){
sum = sum+1;
}
return sum;
},0)
console.log(result);
2、解析url中的參數使之變成json字元串,並針對參數名按首字母進行排序
var url = 'name=jack&age=25&fav=basketball';
var url_0 = 'name=ross&age=18&fav=girl';
var getJson = function(a,b){
let resultArr = [];
let params = [a,b];
let result = {};
for (let i = 0; i<params.length; i++){
resultArr.push(urlParse(params[i]));
}
//json轉字元串 JSON.parse()
//字元串轉json
result = JSON.stringify(resultArr)
return result;
}
var urlParse = function(a){
let res = {}
//sort()函數進行首字母排序
let arr = a.split('&').sort();
for(let j = 0; j<arr.length; j++){
//判斷參數有沒有值
if(arr[j].indexOf('=') != -1){
let str = arr[j].split('=')
res[str[0]] = str[1];
}else{
res[arr[j]] = '';
}
}
return res;
}
console.log(getJson(url,url_0));