JS数组

数组的对象是Array()

        1、length属性:获取字符串的长度

        2、一维数组 [1,2,3,4,5,5]

           二维数组 [1,2,4,4,5,[5,6,7,7,8]]

           

  var arr =  [1,2,4,4,5,[5,6,7,7,8]];

            console.log(arr[1])

            console.log(arr[5][1])

            多维数组 [1,2,4,4,5,[5,6,7,[5,6,7,7,8],7,8]];

        3、新增和删除

            push():向数组的末尾新增一个或多个元素

                

 var arr = [1,2,3,4,5];

 arr.push(10,11);

 console.log(arr)

            pop():从数组的末尾移除元素

                

 var arr = [1,2,3,4,5];

 arr.pop();

 console.log(arr)

            unshift():向数组的头部新增一个或多个元素

                

 var arr = [1,2,3,4,5];

 arr.unshift(10,11,12);

 console.log(arr)

            shift():从数组的头部移除元素

                 

var arr = [1,2,3,4,5];

 arr.shift();

 console.log(arr)

            splice():可以用来新增和删除数组的数据,

                splice(index,0,val,val....):从数组下标index位置开始新增N个元素

                    

 var arr = [1,2,3,4,5];

 arr.splice(2,0,10,11,12);

 console.log(arr)

                splice(index,num):从数组下标index位置开始删除num个元素

                  

 var arr = [1,2,3,4,5];

 var arr2 = arr.splice(2,2);

 console.log(arr)

 console.log(arr2)

                splice(index,num,val,val1....):从数组下标index位置开始删除num个元素,并新增N个元素

                   

 var arr = [1,2,3,4,5];

 var arr2 = arr.splice(2,2,10,11,12,13);

 console.log(arr)

 console.log(arr2)

                注意事项:影响的都是原数组,删除后的元素组成新数组并返回

        4、排序

            sort():

                1、如果不传值的情况下,采用ASCII排序

                    var arr = [1,11,23,24,2,22,3,44,66,1111];

                    console.log(arr.sort()) ==>1, 11, 1111, 2, 22, 23, 24, 3, 44, 66

                2、升序:

                    格式:

                    数组.sort(function(a,b){

                        return a-b;

                    })

                    例如:

                        var arr = [1,11,23,24,2,22,3,44,66,1111];

                        console.log(arr.sort(function(a,b){

                            return a-b;

                        }))

                3、降序

                       格式:

                        数组.sort(function(a,b){

                            return b-a;

                        })

                        例如:

                            var arr = [1,11,23,24,2,22,3,44,66,1111];

                            console.log(arr.sort(function(a,b){

                                return b-a;

                            }))

            reverse():倒序

                var arr = [1,11,23,24,2,22,3,44,66,1111];

                console.log(arr.reverse())

        5、元素位置的查找

            indexOf():从前向后查找元素在数组中位置,存在则返回下标,不存在则返回-1

            lastIndexOf():从后向前查找元素在数组中位置,存在则返回下标,不存在则返回-1

            includes():查找元素在数组中的位置,存在则返回true,不存在则返回false

            例如:

            

 var arr = [1,11,23,23,24,2,22,3,44,66,1111];

 console.log(arr.indexOf(23))

 console.log(arr.lastIndexOf(23))

 console.log(arr.includes(23))

 console.log(arr.includes(123))

            //写一个方法,实现一维数组的去重,并通过方法来实现升序或降序

          

var arr = [1,11,23,23,24,2,22,22,2,3,44,66,1111];

function paixu(arr,paixu = 'asc'){
    var newarr = [];
    for(var i = 0;i<arr.length;i++){
        if(!newarr.includes(arr[i])){
            newarr.push(arr[i])
        }
    }
    switch(paixu){
        case 'asc': 
            newarr.sort(function(a,b){
                return a-b;
            })
            break;
        case 'desc':
            newarr.sort(function(a,b){
                return b-a;
            })
            break;
        default:
            break;
    }
    return newarr;
}
var arr2 = paixu(arr,'desc');
console.log(arr2)

        6、Array.isArray():检查变量是否为数组

          

 var arr = [];

 console.log(Array.isArray(arr))

 console.log(Array.isArray({}))

            //二维数组的去重

   

var arr = [1,11,23,23,24,[1,11,23,23,24,2,22,22,2,3,44,66,111,1111],2,22,22,2,3,44,66,1111];

function unique(arr){
    var newArr = [];
    for(var i = 0;i<arr.length;i++){
        if(Array.isArray(arr[i])){
            for(var j = 0;j<arr[i].length;j++){
                if(!newArr.includes(arr[i][j])){
                    newArr.push(arr[i][j])
                }
            }
        }else{
            if(!newArr.includes(arr[i])){
                newArr.push(arr[i])
            }
        }
    }
    return newArr;
}
var arr2 = unique(arr);
console.log(arr2)

        7、join():将数组转换成字符串

          

   var arr = [1,11,23,23,24,2,22,22,2,3,44,66,1111];

  console.log(arr.join())

        8、循环方法:

            forEach():

                格式:

                    /**

                    * item:数组的值

                    * index:数组的下标

                    */

                    数组.forEach(function(item,index){

                    })

                    例如:

                

var goods = [
    {
        title:'小米手机',
        price:1999,
        num:1,
        totalprice:1999
    },
    {
        title:'苹果手机',
        price:6999,
        num:1,
        totalprice:6999
    }
];
var totalprice = 0;
goods.forEach(function(item,index){
    totalprice +=parseFloat(item.totalprice)
})
console.log(totalprice)

            every():需要数组中每一项都满足条件返回true,否则返回false

                格式:

                    数组.every(function(值){

                        return 比较

                    })

                   

var arr = [1,11,23,23,24,2,22,22,2,3,44,66,1111];
console.log(arr.every(function(item){
    return item > 10;
}))

console.log(arr.every(function(item){
    return item >= 1;
}))

            some():需要数组中有一项满足条件则返回true,否则返回false

                  格式:

                    数组.some(function(值){

                        return 比较

                    })

                     

var arr = [1,11,23,23,24,2,22,22,2,3,44,66,1111];
console.log(arr.some(function(item){
    return item > 1000;
}))

console.log(arr.some(function(item){
    return item >= 10000;
}))  

            filter():返回满足条件的元素组成的新数组

                格式:

                    数组.filter(function(值){

                        return 比较

                    })

                  

var goods = [
    {
        title:'小米手机',
        price:1999,
        num:1,
        totalprice:1999
    },
    {
        title:'苹果手机',
        price:6999,
        num:1,
        totalprice:6999
    },
    {
        title:'华为手机',
        price:2999,
        num:1,
        totalprice:6999
    },
    {
        title:'Oppo手机',
        price:1999,
        num:1,
        totalprice:6999
    }
];
var arr = goods.filter(function(item){
    return item.price >2000;
})
console.log(arr)

            map():返回计算后的元素组成的新数组

                

 var arr = [1,11,23,23,24,2,22,22,2,3,44,66,1111];

                var arr2 = arr.map(function(item){

                    return item * item;

                })

                console.log(arr2)

            for in:枚举对象的键

          

   var arr = [1,11,23,23,24,2,22,22,2,3,44,66,1111];

            for(a in arr){

                console.log(a)

            }

            for of:枚举对象的值

      

       var arr = [1,11,23,23,24,2,22,22,2,3,44,66,1111];

            for(a of arr){

                console.log(a)

            }

                   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北海屿鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值