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;
    }
  • 相关阅读:
    Ext.form.RadioGroup
    Ext:ComboBox实战
    Ext.Ajax.request
    下拉菜单
    为Ext添加下拉框和日期组件
    点击grid单元格弹出新窗口
    好用的sql
    数据库连接池总是断开
    POI 自用API
    String 操作
  • 原文地址:https://www.cnblogs.com/hjdjs/p/8872716.html
Copyright © 2011-2022 走看看