ES6数组的扩展

2018-12-03  本文已影响0人  一个写前端的姑娘

扩展运算符

扩展运算符,三个点(...)。将一个数组转为用逗号分隔的参数序列,把数组里面的东西统统拿出来

  1. 使用方法
console.log(...[1, 2 ,3])  // 1 2 3
console.log(1, 2, ...[3, 4, 5], 6) // 1 2 3 4 5 6
let a = ['a', 'b', 'c']
console.log(...a, 1, 2, 3)  // a  b  c  1  2  3
console.log([...a, 1, 2 ,3,])  // [a, b, c, 1, 2, 3]
  1. 应用
// 函数的调用
function funCall(a, b, c, d, e) {
  return  [a, b, c, d, e]
}
let data = [3, 4, 5]
funCall(1, 2, ...data)  // [1, 2, 3, 4, 5]
// 函数参数的扩展
function funExtend(a, b, ...c) {
  console.log(a, b, ...c)
}
funExtend(9, 10, 11, 12, 13)  // 9 10 11 12 13
let arr = [1, 2, 3, 4, 5]
let copyArr = [...arr, 6]
console.log(arr, copyArr)  //[1, 2, 3, 4, 5]     [1, 2, 3, 4, 5, 6]
let arr = [1, 2, 3, 4]
let arr2 = [5, 6, 7]
console.log([...arr, ...arr2])  // [1, 2, 3, 4, 5, 6, 7]
let arr = [1, 2, 3, 4, 5]
let [front, ...end] = arr  // es5实现 let first = arr[0]; let end = arr.slice(1)
console.log(end)  // [2, 3, 4, 5]

Array.from()

// 将字符串 => 数组
let str = '我只是一个字符串'
Array.from(str)  // ["我", "只", "是", "一", "个", "字", "符", "串"]
// 类似数组的对象  => 数组
let obj = {
  '0': 0,
  '1': 1,
  length: 2
}
Array.from(obj)  // [0, 1]
// set => 数组
Array.from(new Set().add(1).add(2))  // [1, 2]
[...new Set().add(1).add(2)]
// map => 数组
Array.from(new Map().set('a', 1).set('b', 2))  // [['a', 1], ['b', 2]]
[...new Map().set('a', 1).set('b', 2)]   // [['a', 1], ['b', 2]]
let obj = {
  '0': 0,
  '1': 1,
  length: 2
}
Array.from(obj, (item) => item * 5)  // [0, 5]

Array.of()

Array(2)  // [,]   创建一个length为2的数组
Array.of(2)  // [2]

find()、 findIndex()

// find()
let arr = [5, 12, 8, 130, 44]
arr.find((item, index, array) => {
  return item > 5
})   // 12
// findIndex()
arr.findIndex((item, index, array) => {
  return item > 5
})   // 1

keys()、values()、entries()

// keys()
let arr = [5, 12, 8, 130, 44]
for(let key of arr.keys()) {
  console.log(key)
}  // 0, 1, 2, 3, 4
// values
let arr = [5, 12, 8, 130, 44]
for(let key of arr.values()) {
  console.log(key)
}  // 5, 12, 8, 130, 44
// entries()
for(let key of arr.entries()) {
  console.log(key)
}  // [0, 5]  [1, 12]  [2, 8]  [3, 130]  [4, 44]

includes()

let arr = [5, 12, 8, 130, 44]
arr.includes(5)  // true
arr.includes(6)  // false
[1, 2, NaN].includes(NaN)   // true

fill()

var fruits = ["Banana", "Orange", "Apple", "Mango"]
fruits.fill("Runoob")  // Runoob,Runoob,Runoob,Runoob

数组的空位

Array(3)  // [ , , ]
0 in [undefined, undefined, undefined]  // true
0 in [ , , ]   // false

感谢您的view,留个赞再走呗

上一篇 下一篇

猜你喜欢

热点阅读