Array 对象要领整顿

Array 对象要领

数组建立与修正

1. 建立
  • var arr = [];

  • var arr = new Array()

  • Array.of(el1[,el2[…]]) //建立一个新数组实例

  • Array.from(arrayLike) //将类数组(相似数组的对象和可遍历的对象)转为真正的数组。

    // ES5的写法
    var arr1 = [].slice.call(arrayLike);
    // ES6的写法
    let arr2 = Array.from(arrayLike);
2. 兼并
  • Array.prototype.concat(arr1[,arr2..]) //兼并两个或多个数组。不变动现有数组,而是返回一个新数组。

3. 转化为字符串
  • Array.prototype.join(separator) //以separator(默以为逗号)拼接为字符串。

  • Array.prototype.toString() //把数组转换为字符串,数组中的元素之间用逗号分开。

4. 添补
  • Array.prototype.fill(value[, start, end]) //用一个固定值添补[start,end)的元素。

推断数组

  • Array.isArray() //推断通报的值是不是是一个 Array。

挑选排序递归

1. 挑选
  • Array.prototype.filter()

  • Array.prototype.map()

2. 排序
  • Array.prototype.reverse() //将数组中元素的位置倒置。

  • Array.prototype.sort()

3. 递归
  • Array.prototype.reduce()

语法:arr.reduce(callback,[initialValue])

  • callback(accumulator,currentValue,currentIndex,array)

    • accumulator 上一次挪用回调返回的值

    • currentValue 数组中正在处置惩罚的元素

    • currentIndex 数据中正在处置惩罚的元素索引

    • array 挪用 reduce 的数组

  • initialValue [可选],用于第一次挪用 callback 的第一个参数。

增编削查

1. 查找
  • Array.prototype.some(callback) //实行一次 callback 函数,直到找到一个使得 callback 返回true。

  • Array.prototype.every(callback) //数组的一切元素是不是都经由过程callback 函数。

  • Array.prototype.find(callback) //在数组中返回相符callback第一个元素的值。

  • Array.prototype.findIndex(callback)//返回数组中满足callback的第一个元素的索引。不然返回-1。

  • Array.prototype.includes(searchElement) //是不是包括一个指定的值

2. 增、删
  • Array.prototype.pop() //删除数组末了一个元素,并返回该元素的值。

  • Array.prototype.push() //增添元素到数组末端。

  • Array.prototype.shift() //删除数组第一个元素。

  • Array.prototype.unshift() //增添元素到数组开首。

  • Array.prototype.slice(start,end) //返回[start,end)**浅拷贝**到一个新数组对象,**原数组不会被修正**。

  • Array.prototype.splice() //经由过程删除现有元素和/或增加新元素来变动一个数组的内容,**会直接对数组举行修正**。

    • array.splice(start)

    • array.splice(start, deleteCount)

    • array.splice(start, deleteCount, item1, item2, …)

start : 假如超出了数组的长度,则从数组末端最先增加内容;假如是负值,则示意从数组末位最先的第几位(从1计数)。
deleteCount : 假如 deleteCount 是 0,则不移除元素,这类情况下,最少应增加一个新元素;假如 deleteCount 大于start 以后的元素的总数,则从 start 背面的元素都将被删除(含第 start 位);假如deleteCount被省略,则其相当于(arr.length – start)。
item1, item2, … :要增加进数组的元素

轮回遍历

  • Array.prototype.map(callback)

  • Array.prototype.forEach(callback)

  • Array.prototype.entries() //返回一个新的Array Iterator对象,该对象包括数组中每一个索引的键/值对。

  • Array.prototype.keys() //返回一个新的Array迭代器,它包括数组中每一个索引的键。

  • Array.prototype.values() //返回一个新的 Array Iterator 对象,该对象包括数组每一个索引的值。

    for (let index of ['a', 'b'].keys()) {    //遍历键
    console.log(index);
    }
    // 0
    // 1
    
    for (let elem of ['a', 'b'].values()) {   //遍历值
    console.log(elem);
    }
    // 'a'
    // 'b'
    
    for (let [index, elem] of ['a', 'b'].entries()) {   //遍历键/值对
    console.log(index, elem);
    }
    // 0 "a"
    // 1 "b"

参考文档

    原文作者:silkshdow
    原文地址: https://segmentfault.com/a/1190000009817839
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞