JS数组

来源:互联网 发布:wow.js是用来做什么的 编辑:程序博客网 时间:2024/04/30 11:02
var arr=[4,3,2,1];

数组的添加

            arr.push(0); //[4,3,2,1,0]            arr.unshift(8); //[8,4,3,2,1,0]            arr.splice(2,2,"Mike"); //[8,4,"Mike",1,0]

数组的删除

            arr.pop(); //[8,4,"Mike",1]            arr.shift(); //[4,"Mike",1]            arr.splice(1,2) //[4]

数组的截取和合并

            arr.push(1,4,5,8,4,3,2,8,9);  //[4,1,4,5,8,4,3,2,8,9]            var arr1=arr.slice(4,8);  //arr 是[4,1,4,5,8,4,3,2,8,9]//          注意:slice()方法并不改变数组,需要赋值才能获取  arr1 是[4,3,2,8]            var brr1=new Array(2);            brr1[0]="Mike";            brr1[1]="Jhon";            var brr2=new Array(2);            brr2[0]="Lisa";            brr2[1]="Linda";            var brr3=new Array(2);            brr3[0]="Kin";            brr3[1]="Que";            var brr4= brr1.concat(brr2,brr3);//          concat()方法不会改变现有的数组,仅仅返回被连接的数组的个副本//          可以通过赋值获//          console.log(brr1.concat(brr2,brr3))==console.log(brr4);//          brr1 是 ["Mike", "Jhon"]//          brr2 是 ["Lisa", "Linda"]//          brr3 是 ["Kin", "Que"]

数组的拷贝

            console.log(arr); // [4, 1, 4, 5, 8, 4, 3, 2, 8, 9]            arr.slice(0);            arr.concat();

数组的反转

            arr.reverse();

数组的字符串化

console.log(arr.join(",")); //这个方法也不改变原来数组 输出9,8,2,3,4,8,5,4,1,4

数组的排序

            var crr=[2,43,5,3,32,9];            crr.sort(function(a,b){                return a-b; //从大到小排序,b-a则是从小到大排序            });            console.log(crr); //[2, 3, 5, 9, 32, 43]

对象数组的排序

            var objectList=[];            function Person(name,age){                this.name=name;                this.age=age;            }            objectList.push(new Person("Mike",12));            objectList.push(new Person("Lissa",24));            objectList.push(new Person("Linda",30));            objectList.push(new Person("Jhon",4));            objectList.sort(function(a,b){                return (a.age-b.age);            });            for(var i=0;i<objectList.length;i++){                document.writeln("<br>age:"+objectList[i].age+"name:"+objectList[i].name);            }//          输出://          age:4name:Jhon //          age:12name:Mike //          age:24name:Lissa //          age:30name:Linda

filter方法

        <!--可以输出所有大于输入的值的元素-->        <p>最小年龄:<input type="number" value="18" id="ageToCheck" /> </p>        <button onclick="myFunction()">点我</button>        <p>所有大于指定元素的值有:<span id="demo"></span></p>        <script type="text/javascript">            var ages=[23,4,32,2,32];            function checkAge(age){                return age>document.getElementById("ageToCheck").value;            }            function myFunction(){                document.getElementById("demo").innerHTML=ages.filter(checkAge);            }        </script>

forEach方法

            var a=[2,3,4,43,2];            var sum=0;            a.forEach(function(val){                sum+=val;                console.log(sum); //依次输出2,5,9,52,54            })            console.log(sum);//54            a.forEach(function(v,i,a){                a[i]=v+1; //每个val值都自增1            })            console.log(a); //[3, 4, 5, 44, 3]

map()方法

            var a=[1,2,3];            var b=a.map(function(x){                return x*x;            });            console.log(b); //[1, 4, 9]

every()和some()方法

every()和some()方法是数组的逻辑判定:他们对数组元素应用指定的函数进行判定,返回true或false。every()方法只有说有元素返回true时,返回true,相当于&;some()方法只有所有元素返回false时返回false,相当于|。

a=[1,2,3,4,5];a.every(function(x){return x<10;});//=>true:全都小于10a.every(function(x){return x%2===0;});//=>flase:不是所有的元素都是偶数a.some(function(x){return x%2===0;});//=>true:a里面含有偶数a.some(function(x){return x>10;});//=>false:全都不大于10

indexOf()和lastIndexOf()

indexOf()和lastIndexOf()搜索整个数组中具有给定值得元素,返回找到的第一个元素的索引或者没有找到就返回-1。indexOF()是从头至尾,而lastIndexOf()则反向搜索。

a=[0,1,2,1,0];a.indexOf(1);//=>1 a[1]=1a.lastIndexOf(1);//=>3 a[3]=1a.indexOf(3);//=>-1
原创粉丝点击