4.2数组方法

4.2数组方法

1.push()
可以向数组的末尾添加一个或多个元素,并返回新的数组长度
语法:数组.push(元素1,元素2,元素3…)
功能:给数组末尾添加一个或多个元素
参数:要添加的元素,参数个数随意
返回值:添加元素以后,数组的长度

var arr = [1, 2, 3, 4];
var res = arr.push(7);
console.log(res);//----返回长度5
console.log(arr);

2.pop()
可以删除数组的最后一个元素,并返回删除的元素
语法:数组.pop();
功能:移除数组末尾的最后一个元素
返回值:删除的元素

var arr = [1, 2, 3, 4];
var res = arr.pop();
console.log(res);//-------删除末尾元素4
console.log(arr);

3.unshift()
可以向数组的开头添加一个或多个元素,并返回新的数组长度
语法:数组.unshift(元素1,元素2,元素3…);
功能:从数组头部插入元素
参数:插入的元素,插入的个数随意
返回值:插入元素以后,数组的长度

var arr = [1, 2, 3, 4];
var res=arr.unshift('啦啦','哈哈');
console.log(res);//-----------返回长度6
console.log(arr);

4.shift()
可以删除数组的第一个元素,并返回删除的元素
语法:数组.shift();
功能:从数组的头部删除一个元素
返回值:删除的元素

var arr = [1, 2, 3, 4];
var res=arr.shift();
console.log(res);//-------返回删除的元素1
console.log(arr);   

5.forEach()
将数组进行遍历
IE8及以下浏览器不支持该方法
(1)forEach()方法需要一个函数作为参数
(2) 这种函数,有我们创建但不由我们调用,称其为回调函数
(3)数组中有几个元素就会执行几次
(4)以形参形式传递进来,我们可以定义形参,来读取这些内容
(5)浏览器会在回调函数中传递三个参数
第一个参数:当前正在遍历的元素;
第二个参数:当前正在遍历元素的索引
第三个参数,正在遍历的数组

var arr = ['啦啦', '哈哈', '嘻嘻', 3, 4, 5, 7];
arr.forEach(function (value, index, obj) {
        console.log(value)
    })

6.slice()
可以用来从数组中提取指定元素
该方法不会改变原数组,而是将截取到的元素封装到一个新数组中返回
参数:
(1)截取开始位置的索引,包含开始索引
(2)截取结束位置的索引,不包含结束索引
【注意】第二个参数可以省略不写,此时会截取从开始索引往后的所有元素
【注意】索引可以传递一个负值,如果是负值,就从后往前计算
【注意】从后往前没有-0,最后一个元素的索引为-1

   var arr = ['啦啦', '哈哈', '嘻嘻', 3, 4, 5, 7];
    res=arr.slice(0,2);
    console.log(res);//啦啦  哈哈
    console.log(arr);//["啦啦", "哈哈", "嘻嘻", 3, 4, 5, 7]
​
    res=arr.slice(1,-2);//------------此时的-2是数组中的元素5的索引
    console.log(res);// ["哈哈", "嘻嘻", 3, 4]

7.splice()
可以删除数组中的指定元素
(1)使用splice()会影响到原数组,会将指定元素从原数组中删除,并将删除的元素作为返回值返回
splice(参数1,参数2,参数3…)
(2)参数
第一个:表示开始位置的索引
第二个:表示删除的数量
第三个及以后可以传递一些新的元素,会自动插入到开始位置索引的前面

   //删除指定元素
    var arr = ['啦啦', '哈哈', '嘻嘻', 3, 4, 5, 7];
    var res=arr.splice(0,2);
    console.log(res);//----------["啦啦", "哈哈"]
    console.log(arr);//----------["嘻嘻", 3, 4, 5, 7]

添加时:第二个参数为0

//在指定位置插入,添加元素
var arr = ['啦啦', '哈哈', '嘻嘻', 3, 4, 5, 7];
var res=arr.splice(1,0,'猫咪','豆豆');
console.log(arr);//--------- ["啦啦", "猫咪", "豆豆", "哈哈", "嘻嘻", 3, 4, 5, 7]

修改时:相当于先删除再添加 如 arr.splice(1,1,‘汪汪’)

   //修改元素
    var arr = ['啦啦', '哈哈', '嘻嘻', 3, 4, 5, 7];
    var res=arr.splice(1,1,'汪汪');
    console.log(arr);//--------- ["啦啦", "汪汪", "嘻嘻", 3, 4, 5, 7]

【格式】数组.splice(start,delecount,new1,new2…)

功能:在任意位置添加,删除,修改元素
Start :开始数组的下标
Delecount:要删除元素的个数
New1…:参数
添加时:delecount为0
删除时:就只有start和delecount
修改时:相当于先删除再添加 如 arr.splice(2,1,’哈哈’);

//数组去重练习

var ss=[1,2,3,2,2,1,3,4,2,5];
     //获取数组中的每一个元素
    for(var i=0;i<ss.length;i++){
        //获取当前元素后的所有元素
        for(var j=i+1;j<ss.length;j++){
         if(ss[i]==ss[j]){
             ss.splice(j,1);
             //当删除了j所在元素以后,后面的元素会自动补位
             //此时将不会比较这个元素了,所以需要再比较一次j所在位置的元素
             //使j自减
             j--;
         }
        }
    }
    console.log(ss);

8.contact()
【格式】数组1.concat(数组2,数组3…);
功能:将两个或多个数组合并成一个新数组,原数组并不会被改变
返回值:合并好的新数组
参数:要合并的数组
【注意】contact()中也可以直接传入元素

var t1=['小明','小红','小绿'];
var t2=[1,2,3];
var res=t1.concat(t2);
console.log(res);//------["小明", "小红", "小绿", 1, 2, 3]
console.log(t1);
console.log(t2);

9.join()
可以将一个数组转换为一个字符串
【格式】数组.join();
不会对原数组产生影响
将转换后的字符串作为结果返回
在join()中可以指定一个字符串作为参数,这个字符串会成为数组中元素的连接符
【注意】如果不使用连接符,则默认使用逗号作为连接符

var arr3=['啦啦', '哈哈', '嘻嘻', 3, 4, 5, 7];
var res=arr3.join('--'); 
console.log(res);//啦啦--哈哈--嘻嘻--3--4--5--7

10.reverse()
反转数组(逆向排序)-----只是反相排序,并不会改变大小
会对原数组产生影响
【格式】数组.reverse();

var arr4=['啦啦', '哈哈', '嘻嘻', 3, 4, 5, 7];
var res=arr4.reverse(); 
console.log(res);//[7, 5, 4, 3, "嘻嘻", "哈哈", "啦啦"];
console.log(arr4);//[7, 5, 4, 3, "嘻嘻", "哈哈", "啦啦"]

11.sort()
【格式】数组.sort();
功能:将数组中的元素升序排序
会对原数组产生影响
【注】sort默认按照字符串进行排序

var arr5=[3,5,7,4,1];
var res=arr5.sort();
console.log(res);//-----[1, 3, 4, 5, 7]
console.log(arr5);//----[1, 3, 4, 5, 7]

var arr2=[10,1,5,15];
arr2.sort();
document.write(arr2);//1,10,15,5没有排好序的原因是sort默认按照字符串进行排序的


解决办法

var arr6=[2,13,4,11,17];
arr6.sort(function(a,b){//--------升序
return a-b;
})
console.log(arr6);
​
arr6.sort(function(a,b){//--------降序 或者-(a-b)
return b-a;
})
console.log(arr6);

或者

var str=[23,45,12,56,34,67,36,5,7,1,24]; 
function rise(a,b){//---------------升序
  return a-b;
}
console.log(str.sort(rise));function drop(a,b){//---------------降序
return b-a;
}
console.log(str.sort(drop));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值