es6语法部分-强化后的数组

es6语法部分-强化后的数组

1、快速构建新数组
Array.of()

将参数中的所有值作为元素形成数组。如果参数为空,则返回空数组。

var a = 1,b = 'n', c = 2;

Array.of(); // []
Array.of(a); // [1]
Array.of(a, b, c); // [1, 'n', 2]
Array.from()

可以将类数组对象或可迭代(可遍历)对象转化为数组。类数组对象就是一种可遍历的对象,只要对象有length属性,而且有诸如0、1、2、3这样的属性,那么他就是类数组。

let obj1 = {
    0: 'html',
    1: 'css'
}
let obj2 = {
    0: 'html',
    1: 'css',
	length: 2
}
let obj3 = {
    0: 'html',
    1: 'css',
	length: 3
}

Array.from(obj1) // []
Array.from(obj2) // ['html', 'css']
Array.from(obj3) // ['html', 'css', undefined]

from方法还可以接收第二个参数,就是一个map回调函数,用于对每个元素进行处理,放入数组的是处理后的元素。

let obj = {
    0: 'html',
    1: 'css',
	length: 2
}
Array.from(obj, function(item) {
    return item + '---'
})
// ['html---', 'css---']
2、新的数组方法

find:查找数组中符合条件的元素,若有多个符合,则返回第一个。

let a1 = Array.of(1, 2, 3, 4, 5, 6)
let b1 = a1.find(x => x>4)
b1  // 5

findIndex:查找数组中符合条件的元素索引,若有多个符合,返回第一个。

let a1 = Array.of(1, 2, 3, 4, 5, 6)
let b1 = a1.findIndex(x => x>4)
b1  // 4

fill:将一定范围索引的数组元素内容填充为单个指定的值。

let a1 = Array.of(1, 2, 3, 4, 5, 6)
// 第一个参数:用来填充的值
// 第二个参数:被填充的起始索引
// 第三个参数:被填充的结束索引,没写默认到数组末尾
a1.fill(12, 1, 2) // [1, 12, 3, 4, 5, 6]
a1.fill(12, 1) // [1, 12, 12, 12, 12, 12]

copyWithin:将一定范围索引的数组元素修改为此数组另一指定范围索引的元素。

arr.copyWithin(target, startIndex, end)

target:目的起始位置

startIndex: 复制源起始位置,可以省略,可以为负数

end: 复制源结束位置,可以省略,可以为负数

let a1 = Array.of(0, 1, 2, 3, 4, 5, 6)
// 复制源包含起始位置,不包含结束位置
a1.copyWithin(1,5) // [0, 5, 6, 3, 4, 5, 6]
a1.copyWithin(1,5,6) // [0, 5, 2, 3, 4, 5, 6]

a1.copyWithin(1,-2)  // [0, 5, 6, 3, 4, 5, 6]
a1.copyWithin(1,-2, -1)  //  [0, 5, 2, 3, 4, 5, 6]

entries:遍历。

let arr = ['html', 'css', 'js']

for (let a of arr.entries()) {
    console.log(a)
}
// [0, 'html'] [1, 'css'] [2, 'js']

for (let [key, value] of arr.entries()) {
    console.log(key, value)
}

// 0 'html'
// 1 'css'
// 2 'js'

keys:遍历键名。

values: 遍历键值。

let arr = ['html', 'css', 'js']

for (let i in arr.values()) {
    console.log(i)
}
// html css js

for (let i of arr.values()) {
    console.log(i)
}
// 0 1 2
3、数组复制
var arr = [1, 2, 3]
// 写法1
var arrNew = [...arr]
// 写法2
var [...arrNew] = arr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值