js常见面试程序题汇总

1.数组去重或者字符串去重
分析:数组去重,给定一个空数组,去遍历原数组,空数组里面没有的都加到空数组里面,有的就返回。下面是数组去重:
同理:字符串去重,将其转化为数组,按数组方法就可以去重了,最后在转化为字符串即可。
var arr=[1,2,3,1,2,3,4,5,5,6,7,7];


     function f2(num){
     //常规操作
     var array=[];
     for(var i=0;i<num.length;i++)
     {
     if(array.indexOf(num[i])==-1)
     {
     array.push(num[i]);
     }
     }
     console.log(array);
     }
     f2(arr);
  1. xiaoshuo-ss-sfff-fe 转化为驼峰规则
    分析:主要应用到字符串操作函数的相关方法。将其以“-"转化为数组,然后应用下面方法即可。
    split("间隔符") --------把字符串转换成为数组
    charAt(n) --------返回指定位置的字符 n第一个位置为0
    toUpperCase() --------转换成大写
    slice(start,end) --------包头不包尾 截取指字位置字符串
    substring(起始位置索引值,[结束位置索引值]) --------包头不包尾,索引位置符号
    substr(start,length) --------截取字符串长度 start开始截取位置,length表示截取长度
var str="xiaoshuo-ss-sfff-fe";
     function f1(s){
     var st=str.split("-");
     var arr=st.map(function (val,index){
     return val.charAt(0).toUpperCase()+val.slice(1,val.length);
     }).join("");
     console.log(arr.split(" "));
     }
     f1(str);
  1. 二维数组转化一维数组
    分析:这里用到数据类型的判定,有两种方法typeOf、instanceOf
    判定数组是否是数组 num instanceOf Array 是数组返回true 用到递归函数
    var arr=[1,[2,4],[1,4],[2,5],3,[2,6,7],0];
    var a=[];
    function f5(num){
        if(!num instanceof Array){
            return;
        }
        for(var i=0;i<num.length;i++){
            if(num[i] instanceof Array){
                f5(num[i]);
            }
            else{
                a.push(num[i]);
            }
        }
    }
    f5(arr);
    console.log(a);

    4.12345678 转化为rmb 格式
    分析 简单点 就是调用tolocateString();
    常规就是,首先将数字转换为字符串,在分别截取整数部分和小数部分,整数部分倒叙 然后三个一组和,拼接。

var n = 1000000000000000000.11;
price=parseFloat(price);
price=price.toLocaleString();
console.log(price);
}

5.1-100的素数

function sushu(num) {
for (var i = 2; i <= num; i++) {
//当前的数 是不是素数
var isactive = false;
for (var k = 2; k < i; k++) {
if (i % k == 0) {
//不是素数
isactive = true;
}
}
//输出素数
if (!isactive) {
console.log(i);
}
}
}
sushu(100);

6.针对地图的一个遍历注意事项

var map = [
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]
];
var result = [];
function createMap(element) {
//遍历map或forEach
map.map(function (hvalue, hindex) {
//这里遍历出行
var hang = document.createElement("div");
hang.classList.add("hang");
result.push([]);
hvalue.map(function (cvalue, cindex) {
//产生每行的4个列
var colume = document.createElement("div");
colume.classList.add("colume");
hang.appendChild(colume);
result[hindex].push(colume);
});
element.appendChild(hang);
});
}

猜你喜欢

转载自blog.51cto.com/14584021/2465263