一文学会 JavaScript Array数组使用 (javascript红皮书二刷 - Ch5.2 Array类型)

创建数组

使用 Array 构造函数:

var x = new Array() // new 关键字可以省略~
var y = Array(20) // length = 20
var z = Array(1, 2, "张三", "李四", "小明") // 可以混合类型 👍

数组 字面量 表示法:

var hello = ["小帅", "小美", "金发妹", "大壮"] // length = 4
var world = [] // length = 0

操作数组

检测是不是数组

users instanceof Array
users.isArray() // 更推荐

把数组转成字符串 (打印出数组)

一般情况用:

var x = users.toString()
// 或
var y = users.valueOf()
// 或
console.log(users)

此时输出为:1, 2, "小帅", true,但我要是想输出别的呢,比如:1 😅 2 😅 小帅 😅 true,那就用:

console.log(users.join('😅'))

操作第一个和最后一个元素 (前后端)

相信你一定非常熟悉 队列 的操作了,见下:

var x = ['old8', 1, 2]

x.push(3) // 最后面加一个
var tail = x.pop() // 把最后一个取出来, 所以 end = 3

x.unshift("player", "ddd") // 最前面加两个
var head = x.shift() // 把第一个取出来, 所以 head = "player"

数组排序、反转方法

users.reverse() // 把数组反过来
users.sort() // 用js方法排序

如果我想自定义排序规则怎么办呢?如下:

judge (a, b) {
	if ( a < b ) {
		return -1 // 不换
	} else if ( a > b ) {
		return 1 // 换
	} else if ( a == b ) {
		return 0 // 不管
	}
}

// 传入 judge 函数即可, 这里的 judge 函数有很多优秀的写法, 在这里就不一一探讨了 👍
users.sort(judge) 

用 splice 方法删除、插入、替换

var x = [1, 2, 3]
x.splice(0, 1) // 从下标0开始, 删除1项, 现在 x = [2, 3]
x.splice(1, 0, 'n', 'p') // 从下标1开始, 插入2项, 现在 x = [2, 'n', 'p', 3]
x.splice(1, 1, 'yellow', 'blue') // 从下标1开始, 删除1项, 插入2项, 现在 x = [2, 'yellow', 'blue', 'p', 3] 

用 indexOf 搜索数组中的元素

var firstXiaoShuai = x.indexOf("小帅") // 从前面开始找, 找到小帅时返回其索引
var lastXiaoShuai = x.lastIndexOf("小帅") // 从后面开始找小帅

迭代数组

使用 every 和 some 查询数组

使用 every 判断是否数组中每一项都满足条件

function judge(item, index, array){
	return (item > 2)
}
var allBig = values.every(judge)

使用 some 判断是否数组中 有满足条件的项

function judge(item, index, array){
	return (item > 2)
}
var hasBig = values.some(judge)

使用 filter 提炼筛选数组 👍

使用 filter 把数组中 满足条件的项 提取到一个新数组,比如下面的代码可以筛选出数组中所有 > 0 的数:

function lambda(item, index, array){
	return (item > 0)
}
var posArray = values.filter(lambda)

使用 forEach 来遍历数组 👍

使用 forEach 可以遍历数组, 并且不修改数组中的元素内容:

function lambda(item, index, array){
	console.log(item)
}
var afterArray = values.forEach(lambda)

使用 map 获得遍历操作后的数组

使用 map 可以返回遍历操作一遍后的结果数组,比如下面的代码可以让数组里所有元素 乘以 2,并且不改变原来的数组:

function lambda(item, index, array){
	return item * 2
}
var afterArray = values.map(lambda)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值