欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

记一次笔试题

程序员文章站 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));