记一次笔试题
程序员文章站
2022-03-26 14:37:55
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));
上一篇: 还记得第一个看到的Flutter组件吗?
下一篇: 0428(字典,列表,循环)