蘑菇街一电话面试1

说说你常用的技术栈?

ajax解决跨域问题的方法?jsonp的主要实现原理?

点击页面某个按钮,将原本一行显示的内容分成两行,如何实现?

怎样实现段首缩进?值是什么?

如何实现文本限制显示两行,多出来的用省略号表示?

js ‘== ’ 和 ‘===’ 举个栗子 ?

js数组去重的方法(至少说三种ES6 set,双层递归,排序后与左右两边进行比较)
js中 字符串+数值 ‘3’+3 字符串-数值’3‘-3 字符数 ’a‘+3 = NaN

数组去重

方法一:先排序,后去重
function delSame (arr){
    var arr1 = arr.sort();
    var res =[arr1[0]];
    
    var len = arr1.length;
    for(var i=1;i<len;i++){
        if(arr1[i]!==res[res.length-1]){
            res.push(arr1[i]);
        }
    }
    return res;
}

 console.log(delSame([2,4,1,4]));

res保存原数组的第一个数值,然后从arr中第二位开始的数字开始,和res中已经保存的数字进行比较,如果不重复,就把arr[i]加入res数组中去。

方法二:
Array.prototype.unique=function(){
    var res = [];
    var json = {};

    for(var i=0;i<this.length;i++){
        if(!json[this[i]]){
            res.push(this[i]);
            json[this[i]]=1;
        }
    }
    return res;
};
var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];
console.log(arr.unique());

1.如果arr[i]是第一次出现,就把它当做对象的属性,并赋值为1;
2.继续遍历,每次去对象中找arr[i],如果存在这个属性,说明重复了;否则,将它加入对象并给新属性赋值为1,再推入res[]中

转载于:https://www.cnblogs.com/n2meetu/p/8886396.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值