看来的几道JS题目,听说是面试常见题(侵删)

1.在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

思路:
观察这个二维数组的结构,从左到右递增,从上到下递增,理所应当,第一列最下端是一个比较合适的起始位置,这个还是比较容易理解的,如果 target 比之小,则往上移,如果 target 比之大,则向右移。

function Find(target, array)
{
    var rowCount = array.length-1;
    for(var i=rowCount,j=0; i>=0 && j<array[i].length;){
        if(target == array[i][j]){
            return true;
        }else if(target > array[i][j]){
            j++;
            continue;
        }else if(target < array[i][j]){
            i--;
            continue;
        }
    }
    return false;
}

2.题目 2:请实现一个函数,将一个字符串中的空格替换成 “%20”。例如,当字符串为 We Are Happy.则经过替换之后的字符串为 We%20Are%20Happy。

思路:调用 replace 函数

function replaceSpace(str)
{
    var newstr;
    newstr=str.replace(/\s+?/g,"%20") // \s+? 能匹配到多数个空格,视作一个空格
    return newstr;
}

3.输入一个链表,从尾到头打印链表每个节点的值。

思路:定义一个数组,将链表的节点依次 push 进数组,将数组倒序输出

function printListFromTailToHead(head)  
{
    if(!head){return 0;}else{  
         var arr=new Array();  
         for(var q=head;q;q=q.next){  
             arr.push(q.val);  
         }  
     arr.reverse();  
     return arr;  
    }  
}

推荐阅读更多精彩内容

  • 计算机二级C语言上机题库(南开版) 1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平...
    MrSunbeam阅读 5,024评论 1 42
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 29,113评论 18 398
  • +++++++++
    牧童遥指2000阅读 971评论 0 2
  • 在大约20多个关注的微信公号中,好报是我比较喜欢的一个。原因只有一个,里面选登的文章挺合我胃口。几个月前注意到好报...
    星絮阅读 300评论 4 4
  • (刚发现前两天把天数写错了,补一下日记) 今天(2017.2.1)还在火车上呢,起来后发现同车厢内还有一个fore...
    Jocelynwang阅读 35评论 0 0
  • 与书呆子的对话仍在继续 “其实,就算过了雷子这关,你可还有个大问题必须面对呢!”书呆子突然想起了什么, “我知道,...
    考拉凶猛阅读 51评论 0 0
  • 一切都是上乘的羊脂冻 伴着盛开的星星 快停止多余的焰火 哈一口气 微笑的月儿 像蜜一样 在坟墓前坐下 陪着晒晒月光
    长马阅读 99评论 0 6