前端面试总结2

算法题

1.实现range函数,range(1,10,3)返回[1,4,7,10],range('A','F',2),返回['A','C','E'];

考察点:String.fromCharCode(str)与str.charCodeAt()的用法;

函数:

function range(a,b,step){

                    if(!a || !b)return;

                    var returnarr = [a];

                    var i,numA = a,numB = b,is16 = false;

                    if(isNaN(a)){

                        is16 = true;

                        numA = a.charCodeAt();

                        numB = b.charCodeAt();

                    }


                    for(i = numA; i < numB;){


                        if(i + step <= numB){

                            if(is16){

                                returnarr.push(String.fromCharCode(i + step));

                                i += step;

                            }else{

                                returnarr.push(i + step);

                                i += step;

                            }


                            console.log(i);

                        }

                    }

                    return returnarr;

                }

2.实现数组集内自数组集合的值和大于某个数

考察循环嵌套

函数:

function getMinLen(arr,n){

                    var minlen = 0;

                    for(var i = 0;i < arr.length;i++){

                        var sum = 0,index = 0;

                        for(var j = i ; j < arr.length;j++){

                            sum += arr[j];

                            index++;

                            if(sum < n){


                            }else{

                                //minlen.push(index);

                                if(minlen == 0 ||  minlen > index){

                                    minlen = index;

                                }

                                break;

                            }

                        }

                    }

                    return minlen;

                }

3.reduce实现map方法

reduce的参数(total,currentval,index,arr)

function getsum(total,num,index,arr){

                    arr[index] = num * num;

                    return arr;

                }

                var arr = [1,2,3,4,5]

                console.log(arr.reduce(getsum));

你可能感兴趣的:(前端面试总结2)