zoukankan      html  css  js  c++  java
  • js数组排序方法总结

    昨天提到了Array.from方法配合set可以实现排序,那么今天总结下还有哪些方法可以实现排序呐。

    1:创建一个新的数组,赋予目标数组的第一个元素,然后循环判断目标数组的第二个元素到最后一个元素,如果不包含在新数组中则push进新数组

    function a1(arr) {
    let s = Object.prototype.toString;
    if(s.call(arr)!== '[object Array]'){
        throw new typeError('the argument need array');
    }
    let nArr = []
    arr.forEach(function(item,index) {
        if(nArr.indexOf(item) === -1){
            nArr.push(item)
        }
    })
    return nArr;
    }  

    2:利用set结构实现 需要支持es6。

    function unique(arr) {
    return [...new Set(arr)]
    }

    3:利用对象的属性不能重复进行判断,但是对象的属性还会自动调用toString方法,因此无法分辨string,number是否重复比如[1,'1']因此利用新数组的indexOf进行判断下。

    function unique2(array){
      var n = {}, r = [], len = array.length, val;
        for (var i = 0; i < array.length; i++) {
            val = array[i];
            if (!n[val]) {
              n[val] = [val]
                r.push(val);
            } else if (r.indexOf(val) < 0) {
                n[val].push(val);
                r.push(val);
            }
        }
        return r;
    }
  • 相关阅读:
    计算tableview的高度
    UIcollectionview与tableview的区别
    ios 屏幕适配
    避免表单多次提交
    Action权限验证
    正则小记
    在OnActionExecuting中阻止后面Action的执行
    批量上传图片uplodify插件
    表单多次提交
    windows 下安装 rabbitmq报init terminating in do_boot错误
  • 原文地址:https://www.cnblogs.com/hjdjs/p/8872716.html
Copyright © 2011-2022 走看看