JS数组

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:全都小于10
a.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]=1
a.lastIndexOf(1);//=>3 a[3]=1
a.indexOf(3);//=>-1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值