前端数组精选题

一、数组排序

遍历数组,把拿到的数据和定义的temp值比较(这里是从小到大)如果数据大于temp值,则将该数据赋值给temp,继续进行遍历。

var arr = [3,7,9,1,5,10];
var temp = 0;
for (var i = 0; i < arr.length; i++){
    for (var j = 0; j < arr.length - i; j++){
        if (arr[j] > arr[j + 1]){
            temp = arr[j + 1];
            arr[j + 1] = arr[j];
            arr[j] = temp;
        }
    }
}
console.log(arr);

结果为:[1,3,5,7,9,10]

二、数组去除重复元素的方法

先将原数组进行排序;检查原数组中的第i个元素 与 结果数组中的最后一个元素是否相同,因为已经排序,所以重复元素会在相邻位置;如果不相同,则将该元素存入结果数组中。

利用对象的原型方法,代码为:

var arr = [1,5,8,6,4,7,1,8,5,6];
Array.prototype.unique = function(){
    this.sort(); //先排序
    var res = [this[0]];
    for(var i = 1; i < this.length; i++){
        if(this[i] !== res[res.length - 1]){
        res.push(this[i]);
        }
    }
    return res;
}
console.log(arr.unique());

结果为:[1,4,5,6,7,8]

三、获取字符串中最多的字母

首先定义一个空对象和变量,遍历字符串,将遍历到的字符串赋值给变量,将变量添加到对象中去,之后遍历对象,得到最多的字母和次数

扫描二维码关注公众号,回复: 1857220 查看本文章
var str = “abcdefgsdds”;
var obj = {};
var letter;
for(var i = 0,len = str.length;i<len;i++){
    letter = str[i];
    if(!obj[letter]){
        obj[letter] = 1;
    }else{
        obj[letter]++;
    }
}
var max_key,max_num=0;
for(key in obj){
    if(max_num <obj[key]){
        max_num = obj[key];
        max_key = key;
    }
}
document.write(“字母:”+max_key+” 次数:”+max_num);

四、从"abcdefghijklmn"中截取出"klm"

"abcdefghijklmn".substring(11,14);

五、实现字符串翻转

var str="abcd";

str.split("").reverse().join("");




猜你喜欢

转载自blog.csdn.net/mayue24/article/details/80868055
今日推荐