做前端笔试题前,需要复习的数组方法

前端的笔试题,离不开妙用数组解决存储和顺序,本文复习一下数组的方法,加深印象,补充一些妙用。

方法概览

  1. 转换

    • toLocalString()
    • toString()
    • valueOf()
  2. 栈方法

    • pop() array.pop() // 返回pop的元素
    • push() array.push(item1, item2, ..., itemX) // 返回数组新长度
  3. 队列方法

    • push() array.push(item1, item2, ..., itemX) // 返回数组新长度
    • shift() array.shift() // 返回移除的元素
  4. 重排序

    • sort() array.sort(sortFunction) // 返回数组的引用,不产生新的副本
    • reverse() array.reverse() // 返回数组的引用,不产生新的副本
  5. 操作方法

    • concat() array1.concat(array2,array3,...,arrayX) // 返回新数组
    • slice() array.slice(start, end) // 返回新的数组

      array.slice()返回数组的复制。

    • splice() array.splice(index,howmany,item1,.....,itemX) // 如果从 array 中删除了元素,则返回的是含有被删除的元素的数组。

  6. 位置方法

    • indexOf() array.indexOf(item,start) // 返回第一个出现的位置,如果未找到返回 -1
    • lastIndexOf() // 返回最后一个出现的位置,如果未找到返回 -1
  7. 迭代方法

    • every() array.every(function(currentValue,index,arr), context) // context为this的值,下同。返回布尔值,如果所有元素都通过检测返回 true,否则返回 false。
    • filter() array.filter(function(currentValue,index,arr), context) // 返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。
    • some() array.some(function(currentValue,index,arr) ,context) // 返回布尔值。如果数组中有元素满足条件返回 true,否则返回 false。
    • forEach() array.forEach(function(currentValue, index, arr), context) // 返回undefined!
    • map() array.map(function(currentValue,index,arr), context) // 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
  8. 归并方法

    • reduce() array.reduce(function(total, currentValue, currentIndex, arr), initialValue) // 返回计算结果,例如求和。
    • reduceRight() array.reduceRight(function(total, currentValue, currentIndex, arr), initialValue) // 返回计算结果。
  9. 新方法

    • keys() array.keys() // [object Array Iterator]
    • includes() arr.includes(searchElement, fromIndex?) // 返回布尔值。如果找到指定值返回 true,否则返回 false。
    • from() array.from(object, mapFunction, context) // 返回数组对象。用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组。
    • findIndex() array.findIndex(function(currentValue, index, arr), context) // 返回符合测试条件的第一个数组元素索引,如果没有符合条件的则返回 -1。
    • entires() array.entries() // 返回数组迭代对象。