【002】伪数组、fill、filter、find - 图1

伪数组转换成数组

  1. let args = [].slice.call(arguments)
  2. // ES5中的使用方式,ES6中已经废弃了arguments
  3. let imgs[] = [].slice.call(document.querySelectorAll('img'))
  4. // NodeList 这是 ES5的做法
  5. // Array.prototype.from ES6中的做法
  6. let args = Array.from(agruments)
  7. let imgs = Array.from(document.querySelectorAll('img'))
  8. imgs.forEach()
  9. // 语法:Array.from(arrayLike,mapFn,thisArg)

伪数组是什么东东?

对象有索引,有length属性,就是伪数组

  1. // 长度为5的数组,然后都设置成1
  2. // {0:'a',1:'b',length:2}
  3. // 伪数组 TIPS: 有索引,有length属性,就是伪数组
  4. // let array = Array.from({ length: 5 }, function () { return 1 })

for 填充数组是很low的写法

  1. let array1 = Array(5)
  2. for (let i = 0; i < array1.length; i++) {
  3. array1[i] = 1
  4. }
  5. console.log(array1)

fill 填充数组才是ES6的正规写法

  1. // Array.fill(value,startPosition,endPosition)
  2. // [数组].fill(填充值,开始位置,结束位置)
  3. // start default position = 0
  4. // end default position = array.length
  5. let array2 = Array(5).fill(2)
  6. console.log(array2)

filter筛选数组元素

  1. // 有一个1-10的数组
  2. let listA = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  1. // filter会找出全部相关值,哪怕是重复的
  2. let findNums = listA.filter(function (item) {
  3. return item % 3 === 0
  4. })

find在数组中查找唯一元素

  1. /* find 只会找出现的第一次,而且只找第一个 */
  2. let findNum = listA.find(function (item) {
  3. return item % 3 === 0
  4. })

findIndex找索引的位置

  1. /* 找索引的位置 */
  2. let findIndex = listA.findIndex(function (item) {
  3. return item === 2
  4. })