// 1) 添加元素移除元素相关【改变原值】

        //push(p1,p2,...);
            //入栈,在数组的最后添加一个元素. 参数:要入栈的元素. 返回值:数组长度
        var arr = [1,2,3,4,5];
        var result = arr.push("txt","tom","lucy");
        console.log(arr);    //新数组:    [1,2,3,4,5,"txt","tom","lucy"]
        console.log(result);    //新数组长度:    8


        //pop();    
            //出栈,从数组的最后取出一个元素. 参数:none. 返回值:     出栈的元素
        var arr = [1,2,3,4,5];
        var result = arr.pop();
        console.log(arr);    //新数组:    [1,2,3,4]
        console.log(result);    //取出的元素:    5


        //shift();
            //出队,将数组中第一个元素取出来. 参数:none. 返回值:出队的元素
        var arr = [1,2,3,4,5];
        var result = arr.shift();
        console.log(arr);    //新数组:    [2,3,4,5]
        console.log(result);    //取出的元素:    1


        //unshift(p1,p2,...);    
            //插队,将元素插入在数组的最前面. 参数:要插队的元素. 返回值:插队后队列的长度
        var arr = [1,2,3,4,5];
        var result = arr.unshift("txt","tom","lucy");
        console.log(arr);    //新数组:    ["txt","tom","lucy",1,2,3,4,5]
        console.log(result);    //新数组长度:    8


//2)排序方法【改变原值】

        //sort();
            //按照字符在字符编码表中出现的位置进行排序
        var arr = [19,47,51,4,2,32,24,6];
        var result = arr.sort();
        console.log(arr);    //新数组     [19,2,24,32,4,47,51,6]
        console.log(result);    //返回值        [19,2,24,32,4,47,51,6]


        //sort(comparator);
            //comparator为一个比较器函数,函数可以接受两个值a,b;当a位于b之前的时候返回
        var arr = [19,47,51,4,2,32,24,6];
        console.log(arr);    //原数组        [19,47,51,4,2,32,24,6]
        var result = arr.sort(function(a,b){
            if(a<b){
                return 1;
            }else{
                return -1;
            }
        });
        console.log(arr);    //新数组        [51,47,32,24,19,6,4,2]
        console.log(result);    //返回值        [51,47,32,24,19,6,4,2]


//3)序列化方法【不改变原值】

        //toString();
            //将数组转换为字符串,数组中的元素通过逗号连接
        var arr = [1,2,3,4,5];
        var result = arr.toString();
        console.log(arr);    //原数组        [1,2,3,4,5]
        console.log(typeof result);        //返回值类型     string
        console.log(result);    //返回值     1,2,3,4,5


        //join("v");
            //将数组转换为字符串,数组中的元素通过v连接
        var arr = [1,2,3,4,5];
        var result = arr.join("#");
        console.log(arr);    //原数组        [1,2,3,4,5]
        console.log(result);    //返回值     1#2#3#4#5


        //JSON.stringfy();
            //将数组转换为JSON字符串
        var result = JSON.stringify([1,2,3,4,5]);
        console.log(typeof result);        //返回值类型     string
        console.log(result);    //返回值     [1,2,3,4,5]


//4)截取方法

        //concat();    【不改变原值】
            //将参数中的数组和当前数组合并为一个数组. 参数:多个数组. 返回值:合并后的数组
        var arr1 = [1,2,3];
        var arr2 = [4,5,6];
        var arr3 = [7,8,9];
        var result = arr1.concat(arr2,arr3);
        console.log(arr1);        //原数组     [1,2,3]
        console.log(arr2);        //原数组     [4,5,6]
        console.log(arr3);        //原数组     [7,8,9]
        console.log(result);    //返回值     [1,2,3,4,5,6,7,8,9]


        //slice(begin,end);    【不改变原值】
            //从当前数组中截取一个子数组并且范围. 参数: begin 起始位置;  end 结束位置. 返回值:截取到的子数组
        var arr = [1,2,3,4,5,6,7,8,9];
        var result = arr.slice(2,7);    //从索引为2的元素开始截取(7-2)个元素
        console.log(arr);        //原数组     [1,2,3,4,5,6,7,8,9]
        console.log(result);        //返回值     [3,4,5,6,7]


        //splice(bengin,delete,[p1,p2,...]);    【改变原值】
            //从数组中删除、插入、更新元素. 参数:begin 起始位置(删除,插入); delete 删除的个数; p1,p2,... 插入的值. 返回值:删除的元素组成的数组
        var arr = [1,2,3,4,5];
        var result = arr.splice(1,2,"txt","tom","lucy");
        console.log(result);    //删除的元素:        [2,3]
        console.log(arr);    //删除后插入形成的新数组:         [1,"txt","tom","lucy",4,5]


//5)迭代方法
        
        //forEach(function(item,index,arr){})
            //遍历当前数组.  参数:function(item,index,arr){}.  每次遍历一次,这个匿名函数就会被调用一次,forEach将当前遍历的元素,索引,当前数组当做实参传递给这个匿名函数
        var arr = [1,2,3,4,5];
        var result = arr.forEach(function(a,b,c){
            console.log(a);        //数组的项    1 /n    2 /n    3 /n    4 /n    5
            console.log(b);        //数组的索引        0 /n    1 /n    2 /n    3 /n    4
            console.log(c);        //数组本身    [1,2,3,4,5] /n    [1,2,3,4,5] /n    [1,2,3,4,5] /n    [1,2,3,4,5] /n    [1,2,3,4,5]
        });
        console.log(result);    //返回值        undefined


        //every(function(item,index,arr){})
            //判断数组中所有的元素是否满足回调函数中给定的条件.  参数:function(item,index,arr){}.  当每次回调函数返回值为true,every方法的结果为true,当回调函数返回值为false,every方法的结果就为false
        var arr = [1,2,3,4,5];
        var result = arr.every(function(item,index,arr){
            return item >3;
        });
        console.log(result);    //返回值        false


        //some(function(item,index,arr){})
            //判断数组中是否有满足条件的元素.  参数:function(item,index,arr){}.  当回调函数返回true,some方法的结果就为true,当每次回调函数返回false,some方法的结果才为falses
        var arr = [1,2,3,4,5];
        var result = arr.some(function(item,index,arr){
            return item >3;
        });
        console.log(result);    //返回值        true


        //filter(function(item,index,arr){})
            //参数:function(item,index,arr){}.  当回调函数返回true,当前元素就会被添加到返回值数组中.  返回值:数组
        var arr = [1,2,3,4,5];
        var result = arr.filter(function(item,index,arr){
            return item >3;
        });
        console.log(result);    //返回值        [4,5]


        //map(function(item,index,arr){})
            //参数:function(item,index,arr){}.  回调函数可以返回任意类型的值,这些值都会被添加到map方法的返回值数组中.  返回值:数组
        var arr = [
            {name:"tom",age:13},
            {name:"lucy",age:18},
            {name:"leilei",age:16}
        ];
        var result = arr.map(function(item){
            // return item.age;
            return item.name;
        });
        console.log(result);    //返回值        /* [13,18,16] */    ["tom","lucy","leilei"]


//6)查找方法

        //indexOf();
            //查找元素在数组中的位置.  参数:查找元素.  返回值:元素对应的索引.
        var arr = [1,2,3,4,5];
        var result = arr.indexOf(4);
        console.log(result);    //返回值        3


        //lastlndexOf();
            //查找元素在数组中的位置.  参数:查找元素.  返回值:元素对应的索引.
        var arr = [1,2,3,4,5];
        var result = arr.lastIndexOf(1);
        console.log(result);    //返回值        0