• 记一次笔试题


    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));
    
  • 相关阅读:
    web 后台返回json格式数据的方式(status 406)
    消息队列比较
    CAP
    Redis分布式锁的正确实现方式
    idea 快捷键
    给web请求加遮罩动画
    java动态代理实现与原理详细分析(代码层面解释了AOP的实现)
    Spring框架IOC和AOP的实现原理(概念)
    springboot后台控制重定向
    消息队列如何保证幂等性?
  • 原文地址:https://www.cnblogs.com/lfnumber7/p/12543568.html
Copyright © 2020-2023  润新知