zoukankan      html  css  js  c++  java
  • js基础---数组方法

    数组数据的排序及去重  

                  sort无形参的排序方式	
                  arr1=[2,12,3,15];
    	         var a=arr1.sort();console.log(arr1);console.log(a);//排序会改变原本数组是顺序,是依据首个字符的大小开始排名
    			
    			sort有形参的排序方式
    			方法1
    			arr2=[2,12,3,15];
    			var b=arr2.sort(function(n1,n2){if(n1>n2){return 1}})/*自定义形参n1>n2时,return正值是指将n1与n2调换位置,即数据从小到大排列只有将function(n1,n2)改为(n2,n1)才能够实现从大到小排列的效果,修改其他位置均不能达到效果*/
    			console.log(arr2);console.log(b);
    			方法2
    			arr3=[2,12,3,15];
    			var c=arr3.sort(function(n2,n1){if(n1>n2){return n1-n2}})/*自定义形参n1>n2时,return正值是指将n1与n2调换位置,即数据从小到大排列,只有将function(n1,n2)改为(n2,n1)才能够实现从大到小排列的效果,修改其他位置均不能达到效果*/
    			console.log(arr3);console.log(c);
    			
    			数组中的数据逆序排列
    			arr4=[2,12,3,15];
    			var d=arr4.reverse();console.log(arr4);console.log(d);会更改原本数组的顺序
    
    			将数组以单个数据的形式添加入新的 数组
    			arr5=[1,2,3];
    			arr6=[5,6,7];
    			var arr7=arr5.concat(arr6);console.log(arr5);console.log(arr6);console.log(arr7);//备注原本两个数组中的数据不变arr7为新生成的数组

    数组冒泡排序

                   arr=[2,11,9,6,8] ;
                      function ss(arr){
                          var temp;
                          for(var i=0;i<arr.length;i++){
                              for(var j=0;j<arr.length-1-i;j++){
                                  if(arr[j]>arr[j+1]){
                                      temp=arr[j];
                                      arr[j]=arr[j+1];
                                      arr[j+1]=temp;
                                  }    
                              }
                          }
                      }
            
                      ss(arr);
                      console.log(arr);

    数组去重 1        

                   var arr=[12,3,4,6,3,5,12];			
    			function unique1(array){ 
    				var n = []; 
    				for(var i = 0; i < array.length; i++){ 
    				if (n.indexOf(array[i]) == -1) n.push(array[i]); 
    				} 
    				return n; 
    			}
    				var a=unique1(arr);
    				console.log(a);

       数组去重    2

    				var obj={};
    				var newarr=new Array();
    				for(var i=0;i<arr.length;i++){
    					if(!obj[arr[i]]==1){obj[arr[i]]=1;newarr.push(arr[i])}
    				}

    数组的增删改查及字符串数组转换

            数组中添加后面多个数据
            var arr1=new Array;
                arr1[0]=1;        
                var a=arr1.push(5,6);console.log(arr1);console.log(a);        
      
                数组中删除最后一个数据
                arr2=[1,2,3,4,5];
                var b=arr2.pop();console.log(arr2);console.log(b);
                
      
                数组中添加前面多个数据
                arr3=[1,2,3];        
                var c=arr3.unshift(5,6);console.log(arr3);console.log(c);  
    数组前面删除一个数据 arr4=[1,2,3]; var d=arr4.shift();console.log(arr4);console.log(d); 复合数组(也叫2维数组,现在很少用) arrwrap=[["xu","xu"],["dan","dan"],["dan","dan"]]; console.log(arrwrap[0]); console.log(arrwrap[0][0]); 简单数组之中字符的链接 arr5=["xu","dan","dan"]; var e=arr5.join("_");console.log(arr5);console.log(e); 将字符串拆分为数组 var f="192.110.124.189"; var arr6=f.split(".");console.log(f);console.log(arr6); 数组中从某个位置添加和删除多个数据/数组中从某个位置删除多个数据 var arr7=[1,2,3,4,5,6,7]; var g=arr7.splice(2,3);console.log(arr7);console.log(g);//arr7有改动,为删除之后的数组剩余的数据//g删除的数据 数组中从某个位置添加数据 var arr8=[1,2,3,4,5,6,7]; var h=arr8.splice(2,0,"a","a","a","a","a","a");console.log(arr8);console.log(h);//arr8有改动,为添加之后的数组剩余的数据//h删除的数据

                  
    小拓展
                function pri(){console.log(this);console.log(arguments);};
                 pri();
             
    //          function pri(){for(var i=0;i<arguments.length;i++){console.log(arguments[i])}}
    //          function sum(){sum=0; for(var i=0;i<arguments.length;i++){sum+=arguments[i]}return sum}
    //          pri(1,2,3);
    //          console.log(sum(1,2,3)); 
      

    es5及es6数组新方法(2009年及2015年)

    (indexOf、forEach、map、filter、every、find、some、reduce)
    var arr = [{name:'iphone x', price:8000}, {name:'iphone 7', price:5000}, {name:'iphone 6', price:2000}]
    
         arr.forEach(function(val, index){
           console.log(val, index);
         })
    
        // map可以重组一个数组
        var list = arr.map(function(val, index){
          var obj = {}
          // 对象拷贝
          Object.assign(obj, val)
          obj.lock = 0
          return obj
        })    
        console.log(list, arr);
    
        // 过滤一些不要的数据,生成一个新数组
        var newList = arr.filter(function(val, index){
          // 过滤条件
          return val.price < 6000
        })
        console.log(newList);
    
        // 只能找到一个元素
        var prod = arr.find(function(val, index){
          // 找到元素的条件
          return val.name == 'iphone 6'
        })
    
        console.log(prod);
      
    
     
    
     
    
     
    
     
    

      

    欢迎一起讨论,共同进步
  • 相关阅读:
    【Java】Web 服务编程技巧与窍门: 在 UDDI 注册中心为 Web 服务注册开发 UDDI Java 应用程序
    【Java】理解 UDDI 注册中心的 WSDL
    【Java】详解Java解析XML的四种方法
    【JavaScript】常用的JS
    【Java】ArrayList和LinkedList的区别
    【Java】WebService教程
    ORACLE PL/SQL异常处理(Exception)学习笔记
    【面试】花旗
    【304】python专题-读取xml文件
    【303】C# 复制窗体 & 修改名称
  • 原文地址:https://www.cnblogs.com/fengye06050/p/8142685.html
Copyright © 2011-2022 走看看