相关文章推荐
大方的柠檬  ·  常秦(讲师)·  1 年前    · 
酷酷的红金鱼  ·  C 库宏 – errno | 菜鸟教程·  1 年前    · 
稳重的佛珠  ·  如何将带有时区的 PostgreSQL ...·  2 年前    · 
玩滑板的黄花菜  ·  用Python从列表lst中取n个元素 - 知乎·  2 年前    · 
潇洒的猴子  ·  前端性能优化——启用文本压缩 - ...·  2 年前    · 
Code  ›  js数组方法,常用数组Api的基本使用开发者社区
var 数组 arr var方法
https://cloud.tencent.com/developer/article/1679086
成熟的硬币
1 年前
作者头像
yooooo
0 篇文章

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

原创
前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 比昨天进步一点点 > js数组方法,常用数组Api的基本使用

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

原创
作者头像
yooooo
修改 于 2020-11-02 11:16:48
1.3K 0
修改 于 2020-11-02 11:16:48
举报

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

场景1 直接添加数据

   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 添加数组

var arr = [10,20,30,40] 
var arr2 =arr.concat([50,60])
console.log(arr3)  // [10,20,30,40,50,60]

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

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() 删除数组的最后一个元素 返回值就是最后被删除的元素 会改变原数组

var arr = [10,20,30,40]
var arr2 = arr.pop()
console.log(arr2)  // 40 
console.log(arr)  // [10,20,30]

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

var arr = [10,20,30,40] 
arr.reverse()
console.log(arr)  [40,30,20,10]

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

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】

var arr = [10,20,30,40]
var arr2 = arr.slice(1,2)
console.log(arr2) // [20]
console.log(arr)  // [10,20,30,40]

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

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 起始位置为负数 会倒着找 下面代码 从 尾数 开始找 结果如下

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 个元素

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 开始进行添加

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 添加

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 方法会改变原数组

var arr = [1,2,3,4]
arr.shift() // [1]
console.log(arr) // [2,3,4]

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

var arr = [1,2,3,4]
arr.unshift(0) // 5
console.log(arr) // [0,1,2,3,4]

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

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

var arr = [2, 10, 50, 5, 4]
console.log(arr.indexOf(50)) // 2 
console.log(arr.indexOf(60)) // -1  

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

var arr = [10,20,30,40]
arr.forEach((item,index)=>{
   console.log(item,index) // item 为每一项  index 为对应下标
})

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

1 每一项都有return

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

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() 对数组符合条件的每一项进行过滤, 返回一个新数组

 var arr = [10, 20, 30, 40]
    var arr2 = arr.filter(item => {
 
推荐文章
大方的柠檬  ·  常秦(讲师)
1 年前
酷酷的红金鱼  ·  C 库宏 – errno | 菜鸟教程
1 年前
稳重的佛珠  ·  如何将带有时区的 PostgreSQL 时间戳转换为 Java Instant 或 OffSetDateTime?_rxjava_Postgredaxiang-DevPress官方社区
2 年前
玩滑板的黄花菜  ·  用Python从列表lst中取n个元素 - 知乎
2 年前
潇洒的猴子  ·  前端性能优化——启用文本压缩 - 飞仔FeiZai - 博客园
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号