JS数组,数组方法

JS数组,数组方法

1.push和pop
push是在数组中添加元素或数组,在原数组的末尾再追加一个元素或数组,追加的数组看作一个整体

var arr = [2,5,8,9,4];
console.log(arr);
console.log(arr.push([7,4,3]));
console.log(arr);

打印结果为

[ 2, 5, 8, 9, 4 ]
6
[ 2, 5, 8, 9, 4, [ 7, 4, 3 ] ]

pop是删除数组中的最后一个元素

var arr = [2,5,8,9,4];
console.log(arr);
var result = arr.pop();
console.log(result);//返回删除的元素
console.log(arr);//[2,5,8,9]

打印的结果为

[ 2, 5, 8, 9, 4 ]
4
[ 2, 5, 8, 9 ]

2.连接数组的另一个方法concat方法

var arr = [2,5,8,9,4];
console.log(arr);
var result = arr.concat(7);//添加到了一个新的数组中,不改变原数组,在原数组的副本上进行操作所以第二次打印结果和第一次的一样。
var result = arr.concat([1,3,10]);//将添加的数组展开添加到副本数组的末尾
console.log(arr);
console.log(result);

打印结果为

[ 2, 5, 8, 9, 4 ]
[ 2, 5, 8, 9, 4 ]
[2, 5, 8, 9, 4, 1, 3, 10]

3.shift和unshift
shift是在数组的头部删除一个元素

var arr = [2,5,8,9,4];
console.log(arr);
console.log( arr.shift());//返回要删除的元素
console.log(arr);//返回最终数组

打印结果为

[ 2, 5, 8, 9, 4 ]
2
[ 5, 8, 9, 4 ]

unshift在数组的头部添加一个元素

var arr = [2,5,8,9,4];
console.log(arr);
console.log( arr.unshift(10));//6 返回数组添加后的长度
console.log(arr);

打印结果为

[ 2, 5, 8, 9, 4 ]
6
[ 10, 2, 5, 8, 9, 4 ]

4.sort排序
sort排序默认升序

var arr = [2,5,8,9,4];
console.log(arr);
arr.sort();
console.log(arr);

打印结果为

[ 2, 5, 8, 9, 4 ]
[ 2, 4, 5, 8, 9 ]

如果要降序,方法一:

var arr = [2,5,8,9,4];
console.log(arr);
arr.sort(function(a,b){
    if(a>b){
        return -1;//不交换位置的意思
    }
    return 1;
  })
console.log(arr);

方法二:

var arr = [2,5,8,9,4];
console.log(arr);
arr.sort();
arr.sort(function(a,b){
return b-a;//降序
})
console.log(arr);
// return a.age-b.age;//按照年龄升序

5.随机生成列表

var stus = [];
//循环生成10个对象(年龄不一样),并且添加到stus数组中
for(var i =0;i<10;i++){
    //生成随机数
    var num = Math.ceil(Math.random()*20);//ceil(天花板)向上取整,随机数取值范围(0-1)*20 范围扩大到(0-20)
    var num1 = Math.ceil(Math.random()*20);
    // console.log(num);
    var obj = {
        name:'zhangsan'+num1,
        age:num,
        gender:num%2?'男':'女',//年龄双数判断为女,单数为男。
    };
    stus.push(obj);
}

stus.sort(function(a,b){
    // return a.age-b.age;
    return a.name-b.name;//排不出来,避免减号,使用if排出来是ask码排出
    return a.name<b.name ?-1:1;
});
console.log(stus);

6.过滤

var stus = [];
for(var i =0;i<10;i++){
    //生成随机数
    var num = Math.ceil(Math.random()*20);
    var num1 = Math.ceil(Math.random()*20);
    // console.log(num);
    var obj = {
        name:'zhangsan'+num1,
        age:num,
        gender:num%2?'男':'女',
    };
    stus.push(obj);
}
//过滤出年龄大于15的学生
let result = stus.filter((item)=>{
    return item.age>15;
})
console.log(result);
stus.forEach(function(item){
    return item.name;
})
console.log(result);

forEach(function(item,index){}) 遍历数组
map(function(item,index){}) 映射数组中的元素某一部分
filter(function(item,index){}) 过滤数组中的元素
join()
连接数组的元素,组成字符串
且该方法返回的是一个字符串
toString() 将数组转成字符串

7.万能比较对象

function compare(attr){
          return function(a,b){
            return a[attr]<b[attr]?-1:1;  //对attr变量的属性升序
          }
        }

8.数组反转

let arr = [4,7,9,1];
console.log(arr);
//数组反转
arr.reverse();
console.log(arr.toString());
console.log(arr.join('&'));
console.log(arr);

打印结果为

[ 4, 7, 9, 1 ]
1,9,7,4
1&9&7&4
[ 1, 9, 7, 4 ]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值