JS:数组类型及常用的方法使用

 

目录

01 如何定义?

02 常用方法使用

2.1 重要方法

2.2 较为重要方法 


01 如何定义?

 

JS的数组类型和python的列表有很多相似的地方,可以联想记忆。

 

let num = [1, '你好', 1.2]  // 存储的元素可以是不同的数据类型

 

02 常用方法使用

2.1 重要方法

 

length方法 ==> 返回数组的长度

let num = [1, 2, 3, 4]  // 定义数组num
num_len = num.length  // 数组num中有4个元素, 所以num_len值为4
// 注意, 不需要加上括号, 即num.length()是不需要的

 

push(value)方法 ==> 数组末端添加元素value

let num = [1, 2, 3]
num.push(4)  // 数组num更新为[1, 2, 3, 4]

 

pop(index)方法 ==> 删除数组索引为index的元素并将该元素值返回 ,不传参默认删除数组末端元素并将该元素值返回。

let num = ['q', 'w', 'e', 'r']
num_pop1 = num.pop(2)  // 删除数组中索引为2的元素(即字符'e'), 数组更新为['q', 'w', 'r']
// 函数返回被删除的元素, 所以num_pop1 = 'e'
num_pop2 = num.pop()  // 删除数组中末端的最后一个元素(即字符'r'), 数组更新为['q', 'w']
// 函数返回被删除的元素, 所以num_pop2 = 'r'

 

 unshift(value)方法 ==> 在数组开头添加value并返回添加之后新数组的元素个数(即数组.length)

let num = [1, 2, 3, 4]
num_len = num.unshift(123)  // 在数组开头添加元素123, 数组更新为[123, 1, 2, 3, 4]
// 由于新的数组长度为5, 所以函数返回值为5, 所以num_len = 5

 

shift()方法 ==>  删除数组开头的第一个元素并返回删除之后新数组的元素个数(就数组.length)

let num = [1, 2, 3, 4]
num_len = num.shift()  // 删除数组开头的第一个元素(即1), 所以删除之后的数组为[2, 3, 4]
// 删除之后的数组长度为3, 所以num_len = 3

 

 slice()方法 ==> 切片

let num = [1, 2, 3, 4, 5]
num_slice = num.slice(1, 4)  // 取索引范围为[1:3]的数组, 所以num_slice = [2, 3, 4]
// 注意, 原数组不会发生改变, 即还是[1, 2, 3, 4, 5]
// 该函数只有start和end,没有步长,支持负数切片
num_slice1 = num.slice(0, -1)  // 取索引范围为[0, 3]的数组, 所以num_slice1 = [1, 2, 3, 4]

 

 reverse()方法 ==> 逆序返回数组

let num = ['q', 1, 'w', 2]
num_reverse = num.reverse()  // 将num数组重新排列, 逆序(从后往前), 并将排列好的数组返回
// 返回的数组num_reverse = [2, 'w', 1, 'q']。 注意, 原数组也是这个

 

join(link)方法 ==> 连接字符串, 子字符串之间的连接字符为link

let num = ['q', 111, 'www', 34.45]  // 注意, 并没有数组内所有元素必须是字符串(和python不一样)
num_link = num.join('***')  // 用'***'作为连接字符串,去连接数组内各个元素
// num_link = 'q***111***www***34.45'
// 注意, 原数组没有发生变化, 依旧是['q', 111, 'www', 34.45]

concat()方法 ==> 将数组相加,或者说将两个数组连接在一起变成一个更长的数组

let num1 = [1, 2, 3]
let num2 = ['q', '2', 111.111]
num_concat = num1.concat(num2)  // 将两个数组连接在一起,并将该组合的新数组返回
// 所以新数组num_concat = [1, 2, 3, 'q', '2', 111.111]
// 原数组num1, num2均没有改动

  sort()方法 ==> 将数组进行排序

let num = [4, 3, 2, 1]
num_sort = num.sort()  // 返回升序排列的数组, 并且原数组num也是经过升序排列的数组

2.2 较为重要方法 

三个比较重要的方法

forEach()方法 ==> 类似于python的map()

不过多讲解,直接放代码。

let num = [111, 222, 333, 444, 555]
undefined
num.forEach(function(num_i){console.log(num_i ** 2)}, num)  // 返回元素平方
VM3207:1 12321
VM3207:1 49284
VM3207:1 110889
VM3207:1 197136
VM3207:1 308025
undefined
num.forEach(function(num_i, index){console.log(num_i, index)}, num)  // 返回元素值及其索引
VM3371:1 111 0
VM3371:1 222 1
VM3371:1 333 2
VM3371:1 444 3
VM3371:1 555 4
undefined
num.forEach(function(num_i, index, n){console.log(num_i, index, n)}, num)  // 返回元素值及其索引以及元素所在的数组
VM3621:1 111 0 (5) [111, 222, 333, 444, 555]
VM3621:1 222 1 (5) [111, 222, 333, 444, 555]
VM3621:1 333 2 (5) [111, 222, 333, 444, 555]
VM3621:1 444 3 (5) [111, 222, 333, 444, 555]0: 1111: 2222: 3333: 4444: 555length: 5[[Prototype]]: Array(0)
VM3621:1 555 4 (5) [111, 222, 333, 444, 555]
undefined

splice()方法 ==> 删除指定范围数组,添加数组

let num = [1, 2, 3, 4, 5]
undefined
num.splice(1, 3)  // 从索引1(包括)开始, 往后删除三个元素, 并将删除的元素以数组形式返回
(3) [2, 3, 4]
num  // 删除的元素是2, 3, 4 所以剩下1, 5两个元素
(2) [1, 5]
let num = [11, 22, 33, 44, 55]
undefined
num.splice(2, 2, 666)  // 从索引2开始, 往后删除2个元素, 并将删除的元素以数组的形式返回
(2) [33, 44]
num  // 我们上面的splice()还传入了第三个参数:666, 表示在索引为2的位置添加该参数
(4) [11, 22, 666, 55]
let num = [1, 2, 3, 4, 5]
undefined
num.splice(1, 2, [111, 222, 333])  // 从索引1开始, 往后删除2个元素, 并将删除的元素以数组形式返回
(2) [2, 3]
num  // 这里我们的splice()传入的第三个参数稍微有点不一样, 就是我们传入的是一个数组, 但是还是一样的效果, 就是将数组中索引为1的位置添加该参数, 只不过原来是添加一个数, 现在是添加一整个数组而已
(4) [1, Array(3), 4, 5]

map()方法 ==> 和前面的forEach()方法类似,大同小异

<p>炒茄子</p>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

炒茄子

不装逼我浑身难受aaa

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

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

打赏作者

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

抵扣说明:

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

余额充值