前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js数组方法,常用数组Api的基本使用

js数组方法,常用数组Api的基本使用

原创
作者头像
yooooo
修改2020-11-02 11:16:48
2K0
修改2020-11-02 11:16:48
举报

1 concat() 连接数组, 返回值是一个添加后的数据, 原数组没改变

场景1 直接添加数据

代码语言:javascript
复制
   var arr = [10,20,30,40]
   var arr2 = arr.concat(40,50) 
   console.log(arr)  // [10,20,30,40]
   console.log(arr2)  // [10,20,30,40,40,50]

场景2 添加数组

代码语言:javascript
复制
var arr = [10,20,30,40] 
var arr2 =arr.concat([50,60])
console.log(arr3)  // [10,20,30,40,50,60]

2 join() 将数组所有元素连接成一个字符串并返回这个字符串,不会改变原数组

代码语言:javascript
复制
var arr = [10,20,30,40] 
var arr2 = arr.join('=')
console.log(arr)  // [10,20,30,40]
console.log(arr2) // 10=20=30=40

3 pop() 删除数组的最后一个元素 返回值就是最后被删除的元素 会改变原数组

代码语言:javascript
复制
var arr = [10,20,30,40]
var arr2 = arr.pop()
console.log(arr2)  // 40 
console.log(arr)  // [10,20,30]

4 reverse() 翻转数组 将数组进行翻转 最后一项变为第一项 倒数第二项变为第二项 以此类推 会改变原数组

代码语言:javascript
复制
var arr = [10,20,30,40] 
arr.reverse()
console.log(arr)  [40,30,20,10]

5 shift()  删除数组的第一个元素 返回值是被删除的元素 会改变原数组

代码语言:javascript
复制
var arr = [10,20,30,40]
var arr2 = arr.shift()
console.log(arr2)  10 
console.log(arr)   [20,30,40]

6 slice() 查找数组中选定范围的值 返回值是一个数组 不会改变原来的数组

该方法有两个参数 slice( start , end )

第一个参数:start:从那一个下标开始查找 如果为负数则倒着查找

第二个参数: end : 结束位置    start <= 范围 < end

场景一 从下标 1 开始查找 到 下标 2 (不包含下标2)所以返回的就是 【20】

代码语言:javascript
复制
var arr = [10,20,30,40]
var arr2 = arr.slice(1,2)
console.log(arr2) // [20]
console.log(arr)  // [10,20,30,40]

场景2 不写结束位置 会返回原数组

代码语言:javascript
复制
var arr = [10,20,30,40]
var arr2 = arr.slice(0)
console.log(arr2) // [10,20,30,40]
console.log(arr) // [10,20,30,40]

场景3 起始位置为负数 会倒着找 下面代码 从 尾数 开始找 结果如下

代码语言:javascript
复制
var arr = [10,20,30,40]
var arr2 = arr.slice(-2)  // 从倒数第2个字符起一直到结束
var arr3 = arr.slice(0,-3)  // 从开始一直到倒数第3个字符的前一个字符 
console.log(arr2) // [30,40]
console.log(arr3) // [10,20]

7 splice() 方法用于添加或删除数组中的元素 会改变原来的数组

splice( index , howmany ) 该方法有两个必填参数

参数 1 index表示从什么位置开始添加或删除数组元素

参数 2 howmany 表示删除的元素数量,如果为0,则表示不删除数组元素

其他参数 item1,.....,itemX 添加的参数 可以不写

场景1 删除情况 下面代码 从下标 0 开始删除 删除 1 个元素

代码语言:javascript
复制
var arr = [10,20,30,40]
var arr2 = arr.splice(0,1)  
console.log(arr2); // [10]
console.log(arr);  // [20,30,40]

场景 2 添加情况 下面代码从 2 开始 删除 0 所以没有进行删除 然后从 2 开始进行添加

代码语言:javascript
复制
var arr = [10,20,30,40]
var arr2 = arr.splice(2,0,50,60,70)
console.log(arr2) // [] 
console.log(arr) // [10,20,50,60,70,30,40]

场景 3 删除添加情况 从 0 开始参数 删除2为 之后从0 添加

代码语言:javascript
复制
var arr = [10,20,30,40];
var arr2 = arr.splice(0,2,50,60,70);
console.log(arr2); // [10,20]
console.log(arr)  // [50,60,70,30,40]

8 shift() 删除原数组第一项,并返回删除元素的值,如果数组为空则返回undefined 方法会改变原数组

代码语言:javascript
复制
var arr = [1,2,3,4]
arr.shift() // [1]
console.log(arr) // [2,3,4]

9 unshift(): 将参数添加到原数组开头,并返回数组的长度 , 会改变原数组

代码语言:javascript
复制
var arr = [1,2,3,4]
arr.unshift(0) // 5
console.log(arr) // [0,1,2,3,4]

10 sort() 对数组进行排序,从小到大或从大到小 会改变原数组

代码语言:javascript
复制
let arr = [2, 10, 50, 5, 4]
    arr.sort((a, b) => {
      return a - b  // 从小到大
    })
console.log(arr) // [2, 4, 5, 10, 50] 
arr.sort((a,b)=>{
   return b-a // 从大到小
})
console.log(arr)  // [50, 10, 5, 4, 2]

11 indexOf()两个参数:1 要查找的项, 2查找的起点索引。其中, 从数组的开头(位置 0)开始向后查找 存在返回位置索引,不存在返回-1

代码语言:javascript
复制
var arr = [2, 10, 50, 5, 4]
console.log(arr.indexOf(50)) // 2 
console.log(arr.indexOf(60)) // -1  

12 forEach() 对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值

代码语言:javascript
复制
var arr = [10,20,30,40]
arr.forEach((item,index)=>{
   console.log(item,index) // item 为每一项  index 为对应下标
})

13 map() 对数组每一项一个给定的函数 返回一个新数组

1 每一项都有return

代码语言:javascript
复制
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
return item*item;
});
console.log(arr2) // [1, 4, 9, 16, 25]

2 如果某一项没有return 默认为undefined

代码语言:javascript
复制
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
 if(item>2) return item 
});
console.log(arr2) //  [undefined, undefined, 3, 4, 5]

14 filter() 对数组符合条件的每一项进行过滤, 返回一个新数组

代码语言:javascript
复制
 var arr = [10, 20, 30, 40]
    var arr2 = arr.filter(item => {
      if (item >= 20) {
        return item
      }
    })
console.log(arr2) // [20, 30, 40]

15 flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。

方法最基本的作用就是数组降维

代码语言:javascript
复制
var arr1 = [1, 2, [3, 4,5,[6,7]];
arr3.flat(Infinity);  // [1,2,3,4,5,6,7]

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 concat() 连接数组, 返回值是一个添加后的数据, 原数组没改变
    • 场景1 直接添加数据
      • 场景2 添加数组
      • 2 join() 将数组所有元素连接成一个字符串并返回这个字符串,不会改变原数组
      • 3 pop() 删除数组的最后一个元素 返回值就是最后被删除的元素 会改变原数组
      • 4 reverse() 翻转数组 将数组进行翻转 最后一项变为第一项 倒数第二项变为第二项 以此类推 会改变原数组
      • 5 shift()  删除数组的第一个元素 返回值是被删除的元素 会改变原数组
      • 6 slice() 查找数组中选定范围的值 返回值是一个数组 不会改变原来的数组
        • 该方法有两个参数 slice( start , end )
          • 第一个参数:start:从那一个下标开始查找 如果为负数则倒着查找
            • 第二个参数: end : 结束位置    start <= 范围 < end
              • 场景一 从下标 1 开始查找 到 下标 2 (不包含下标2)所以返回的就是 【20】
                • 场景2 不写结束位置 会返回原数组
                  • 场景3 起始位置为负数 会倒着找 下面代码 从 尾数 开始找 结果如下
                  • 7 splice() 方法用于添加或删除数组中的元素 会改变原来的数组
                    • splice( index , howmany ) 该方法有两个必填参数
                      • 参数 1 index表示从什么位置开始添加或删除数组元素
                        • 参数 2 howmany 表示删除的元素数量,如果为0,则表示不删除数组元素
                          • 其他参数 item1,.....,itemX 添加的参数 可以不写
                            • 场景1 删除情况 下面代码 从下标 0 开始删除 删除 1 个元素
                              • 场景 2 添加情况 下面代码从 2 开始 删除 0 所以没有进行删除 然后从 2 开始进行添加
                                • 场景 3 删除添加情况 从 0 开始参数 删除2为 之后从0 添加
                                • 8 shift() 删除原数组第一项,并返回删除元素的值,如果数组为空则返回undefined 方法会改变原数组
                                • 9 unshift(): 将参数添加到原数组开头,并返回数组的长度 , 会改变原数组
                                • 10 sort() 对数组进行排序,从小到大或从大到小 会改变原数组
                                • 11 indexOf() 有两个参数:1 要查找的项, 2查找的起点索引。其中, 从数组的开头(位置 0)开始向后查找 存在返回位置索引,不存在返回-1
                                • 12 forEach() 对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值
                                • 13 map() 对数组每一项一个给定的函数 返回一个新数组
                                  • 1 每一项都有return
                                    • 2 如果某一项没有return 默认为undefined
                                    • 14 filter() 对数组符合条件的每一项进行过滤, 返回一个新数组
                                    • 15 flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
                                      • 方法最基本的作用就是数组降维
                                      领券
                                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档