前端面试总结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));

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /*去重*/ function delRepeat(arr){ var newArray=new Array();...
    Hedgehog_Dove阅读 5,859评论 0 2
  • 如何控制alert中的换行?\n alert(“p\np”); 请编写一个JavaScript函数 parseQu...
    heyunqiang99阅读 4,721评论 0 6
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,349评论 0 33
  • 春归何处,三月和风度。喜雨润枝枝凝露,一派生机永驻。 粉洒花蕊娇容,碧妆柳叶瑛琼。夕至染霞似玉,晓来映日如彤。 夏...
    静铃音阅读 4,379评论 26 41
  • 杨平厦门小微洗护产业2018年1月2日清 [太阳]计划: 1.宏伟洗衣机库存型号,数量(输出表格); 2.宏伟乡镇...
    深笑567阅读 1,079评论 0 0