ES6-数组

一. 数组创建

概述
  1. Array.of(x,…) :将参数中所有值作为元素形成数组
  2. Array.from(x,fn) :将类数组对象或可迭代对象转化为数组
  3. 类数组对象:必须含有lenght属性,且元素属性名必须是数值或者可转换数值的字符
使用方法
// 1.创建数组
let arr1 = Array.of(1,2,'xu') // [1, 2, "xu"]
let arr2 = new Array(4) // [empty × 4]
let arr3 = [2,3,4] // [2, 3, 4] 
let arr4 = Array.of() // []
let arr5 = Array.of(...['a','b','c']) //  ["a", "b", "c"]
// 2.参数为类数组对象或者可迭代对象
let arr6 = Array.from([1,2,'s']) // [1,2,"s"]
let arr7 = Array.from([1,,2]) // [1,undefined,2]
let arr8 = Array.from([1,2,3],function(n){
    return n*2+'x'
}) // ["2x","4x","6x"]
// 2.1 参数为类数组对象
let arrObj = {
    0:1,
    1:'a',
    length:2
}
let arr9 = Array.from(arrObj) // [1,"a"]
let arrObj2 = {
    0:1,
    1:'a',
}
let arr10 = Array.from(arrObj2) // []
let arrObj3 = {
    '0':1,
    '1':'a',
    '3':2,
    length:5
}
let arr11 = Array.from(arrObj3) // [1, "a", undefined, 2, undefined, undefined]
let arrObj4 = {
    '0':1,
    '1':'a',
    '3':2,
    length:2
}
let arr12 = Array.from(arrObj4) // [1, "a"]
// 2.2 可迭代对象
let map = new Map()
map.set('name','xudanfeng')
map.set('age','26')
let arr13 = Array.from(map) //  [["name","xudanfeng"],["age","26"]]
let set = new Set([1,2,2,4,2,5])
let arr14 = Array.from(set) // [1,2,4,5]

二. 扩展的方法

概述

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

let arr = Array.of(1,2,3,4,5)
arr.find(item => item > 3) // 4

2.2 查找函数 findIndex(fn):查找数组中符合条件的元素索引,若多个符合条件的元素,则返回第一个 元素索引。

 let arr = Array.of(1,2,3,4,5)
arr.findIndex(item => item > 3) // 3

2.3 填充函数 fill(value,startIndex,endIndex):将一定范围索引的数组元素内容填充为单个指定的值。startIndex,endIndex选填参数,默认数组起始,数组结尾。

let arr = Array.of(1,2,3,4,5)
arr.fill(6,1,3) // [1,6,6,6,5]
let arr1 = Array.of(1,2,3,4,5)
arr1.fill(6,1) // [1,6,6,6,6]

2.4 填充函数 copyWithin(index,sIndex,eIndex):将一定范围索引的数组元素内容填充为单个指定的值。

  • index:被修改的起始索引
  • sIndex:被用来覆盖的数据的起始索引
  • eIndex:被用来覆盖的数据的结束索引,默认数组末尾
let arr = Array.of(1, 2, 3, 4)
// 起始索引为0,被用来覆盖数据索引下标[3,4)对应元素4
arr.copyWithin(0, 3, 4) // [4,2,3,4]
let arr1 = Array.of(1, 2, 3, 4)
// 起始索引为1,被用来覆盖数据索引下标[2,4)对应元素2,3
arr1.copyWithin(1, 2, 4) // [1,3,4,4]
let arr2 = Array.of(1, 2, 3, 4, 5)
arr2.copyWithin(1, 2, 5) // [1,3,4,5,5]
console.log(arr, arr1, arr2)

2.5 遍历函数 entries():遍历键值对

let arr = Array.of(1, 2, 3, 4)
let keyValueArr = arr.entries()
console.log([...keyValueArr]) // [[0,1],[1,2],[2,3],[3,4]]

2.6 遍历函数 keys():遍历键名

let arr = Array.of(1, 2, 3, 4)
let keyArr = arr.keys()
console.log([...keyArr]) // [0,1,2,3]

2.7 遍历函数 values():遍历键值

let arr = Array.of(1, 2, 3, 4)
let valueArr = arr.values()
console.log([...valueArr]) // [1,2,3,4]

2.8 包含函数 includes(v,index):数组是否包含指定值,v:指定值,index:从数组索引index起开始向后搜索

let arr = Array.of(1, 2, 3, 4)
arr.includes(1) // true
arr.includes(1,2) // false
arr.includes(3,1) // true

2.9 嵌套数组转一维数组 flat(n)

console.log([1 ,[2, 3]].flat()); // [1, 2, 3] 
// 指定转换的嵌套层数
console.log([1, [2, [3, [4, 5, [6]]]]].flat(2)) // [1, 2, 3, [4, 5,[6]]]
console.log([1, [2, [3, [4, 5, [6]]]]].flat(3)) // [1, 2, 3, 4, 5,[6]]
// 不管嵌套多少层
console.log([1, [2, [3, [4, 5]]]].flat(Infinity)); // [1, 2, 3, 4, 5]
// 自动跳过空位
console.log([1, [2, , 3]].flat());<p> // [1, 2, 3]
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值