JS数组

简介: 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 = [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)
            }


相关文章
|
24天前
|
自然语言处理 前端开发 JavaScript
🛠️ JavaScript数组操作指南:20个精通必备技巧🚀
本文详细介绍了 JavaScript 中的 20 个高效数组操作技巧,涵盖了从基本的添加、移除元素,到数组转换和去重等高级操作。强调了不可变性的重要性,提供了清晰的代码示例,帮助开发者编写更整洁和高效的代码。无论是新手还是经验丰富的开发者,这些技巧都将显著提升您的编码能力,使您在项目中更具竞争力。
17 2
|
27天前
|
JavaScript 前端开发 测试技术
JS都有哪些操作数组的方法
JS都有哪些操作数组的方法
19 3
|
29天前
|
JavaScript
js删除数组中已知下标的元素
js删除数组中已知下标的元素
34 4
|
27天前
|
缓存 JavaScript 前端开发
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
29 1
|
1月前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
22 5
|
1月前
|
JavaScript 前端开发 索引
探索JavaScript数组:基础
探索JavaScript数组:基础
17 3
|
1月前
|
JavaScript 前端开发 索引
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
31 1
|
1月前
|
JavaScript 前端开发
如何在JS中声明一个数组
如何在JS中声明一个数组
18 0
|
1月前
|
存储 JavaScript 前端开发
JavaScript Array(数组) 对象
JavaScript Array(数组) 对象
25 3
|
27天前
|
JavaScript 前端开发 API
JS中数组的方法flat()怎么用
JS中数组的方法flat()怎么用
13 0