• 给数组添加新方法,去重,获取最大值最小值



    第一种让原来的次序打乱,随机数
    Array.prototype.shuffle = function() { var input = this; for (var i = input.length-1; i >=0; i--) { var randomIndex = Math.floor(Math.random()*(i+1)); var itemAtIndex = input[randomIndex]; input[randomIndex] = input[i]; input[i] = itemAtIndex; } return input; };
    var tempArray = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
    var tempArrayNew=tempArray.shuffle(); 

    第二种获取数组的最大值
    Array.prototype.max
    = function () { // 将数组第一个元素的值赋给max var max = this[0]; // 使用for 循环从数组第一个值开始做遍历 for (var i = 1; i < this.length; i++) { // 如果元素当前值大于max,就把这个当前值赋值给max if (this[i] > max) { max = this[i]; } } // 返回最大的值 return max; };
    var tempArray = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
    var tempArrayMax=tempArray.max(); //10

    第三种获取数组的最小值

    Array.prototype.min
    = function () { var min = this[0]; this.forEach(function(ele, index,arr) { if(ele < min) { min = ele; } }) return min; };
    var tempArray = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
    var tempArrayMin=tempArray.min();//1

    Array.prototype.unique
    = function () { // 构建一个新数组存放结果 var newArray = []; // 创建一个空对象 var object = {}; // for循环时,每次取出一个元素与对象进行对比 // 如果这个元素不重复,则将它存放到结果数中 // 同时把这个元素的内容作为对象的一个属性,并赋值为1, // 存入到第2步建立的对象中 for (var i = 0; i < this.length; i++){ // 检测在object对象中是否包含遍历到的元素的值 /*typeof (this[i]) 是判断什么类型*/ /* typeof (this[i])+ this[i]是字符串拼接,例如第一次循环number1*/ if(!object[typeof(this[i]) + this[i]]) { // 如果不包含,将存入对象的元素的值推入到结果数组中 newArray.push(this[i]); // 如果不包含,存入object对象中该属性名的值设置为1 object[typeof(this[i]) + this[i]] = 1; } } return newArray; }var arr = [1,2,3,4,1,3,4,56,32,34,2]; var arrUnique=arr.unique(); console.log(arrUnique);//1,2,3,4,56,32,34

    第四种数组从小到大排序

    function sortNumberMin(a,b) {
        return a - b;
    }

    var arr2=[1,44,22,12,2,8];
    var arr2SoetMin=arr2.sort(sortNumberMin);
        console.log(arr2SoetMin);//1,2,8,12,22,44

    第五种数组从大到小排序

    function sortNumberMax(a,b) {
        return b-a;
    }
    var arr2=[1,44,22,12,2,8];
    var arr2SoetMax=arr2.sort(sortNumberMax);
        console.log(arr2Soetax);//44,22,12,8,2,1

    </script>

  • 相关阅读:
    一种flink 作业提交失败的情况描述与原因排查
    Linux中对管道命令中的任意子命令进行返回码校验
    优化算法与特征缩放
    优化算法
    mvn-dependencies-vs-dependencyManagement
    Caused by java.lang.Exception Failed to send data to Kafka Expiring
    学习ArrayList的扩容机制
    SpringBoot多数据源配置
    idea内存不足或过大闪退
    利用csv文件批量编辑更新sql
  • 原文地址:https://www.cnblogs.com/binmengxue/p/5320583.html
走看看 - 开发者的网上家园