Js数组处理方式整理

数组的转化

  • Array.from将相似数组的对象和可遍历的对象转为真正的数组es6

var arr1 = Array.from(arrayLikeObj); //ES6

var arr2 = [ ].slice.call(arrayLikeObj): //ES5
  • Array.of将一组值转换为数组数组

Array.of(3,11,7) // [3,11,7]

数组的复制

  • copyWithin将指定位置的成员复制到其它位置(会覆盖原有成员),而后返回当前数组。
    此方法会修改原数组。函数

Array.prototype.copyWithin(target, start = 0, end = this.length)

接受三个参数this

* target(必需):从该位置开始替换数据
* start(可选):从该位置开始读取数据,默认为0,若是是负值,表示倒数(右边第一位为-1)
* end(可选):到该位置前中止读取数据,默认为数组长度,若是是负值,表示倒数
[1,2,3,4,5,6].copyWithin(0,2) // [3,4,5,6,5,6]

[1, 2, 3, 4, 5].copyWithin(0, -2, -1) // [4, 2, 3, 4, 5]

数组的查找

  • 查找成员编码

find方法用于找出第一个符合条件的数组成员。它的参数是一个回调函数,数组中的每个成员依次执行这个回调函数。
若是找到第一个符合条件的成员,返回该成员。若是没有符合条件的,则返回undefinedprototype

[1, 5, 10, 15].find(function(value, index, arr) {
  return value > 9;
}) // 10

find方法的回调函数接受三个参数
value:当前值
index:当前位置
arr:原数组code

  • 查找成员位置对象

[1, 5, 10, 15].findIndex(function(value, index, arr) {
  return value > 9;
}) // 2

indexOf也能够返回成员位置,若是不存在,则返回-1,因此不少时候也用来判断成员是否存在排序

if (arr.indexOf(el) !== -1) {
    ... // el不存在数组中时执行
}

-判断成员是否存在ip

include方法判断某个给定值是否存在数组中,返回布尔值。

[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, NaN].includes(NaN); // true

数组的填充

使用fill()给定值填充数组

接受三个参数
target(必需):用该数值填充数组
start(可选):从该位置开始填充,不接收负值
end(可选):到该位置前中止填充

['a', 'b', 'c'].fill(7, 1, 2) // ['a',7,'c']

数组的遍历取值

键名遍历:keys( )
键值遍历:values( )
键值对遍历:entries( )

能够用for...of循环遍历

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"

数组的元素操做

  • concat()链接两个或更多的数组,并返回结果。
    arr1.concat(arr2)

    ES6中可利用扩展运算符直接写成
    [ ...arr1,...arr2]
  • join()把数组的全部元素放入一个字符串。元素经过指定的分隔符进行分隔。

  • pop()删除并返回数组的最后一个元素

  • push()向数组的末尾添加一个或更多元素,并返回新的长度。

  • reverse()颠倒数组中元素的顺序。

  • shift()删除并返回数组的第一个元素

  • slice()
    从某个已有的数组返回选定的元素(返回一个新数组)

arr.slice(start,end)

start

必需。规定从何处开始选取。若是是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

end

可选。规定从何处结束选取。该参数是数组片段结束处的数组下标。若是没有指定该参数,那么切分的数组包含从 start 到数组结束的全部元素。若是这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
  • sort()
    对数组的元素进行排序(按照字符编码的顺序)

若是要按照数值大小对数字排序,必须使用一个排序函数arr.sort(sortNumber)

  • splice()删除元素,并向数组添加新元素。会改变原数组

    arr.splice(index,howmany,item1,.....,itemX)
    
    index
    
    必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
    
    howmany
    
    必需。要删除的项目数量。若是设置为 0,则不会删除项目。
    
    item1, ..., itemX
    
    可选。向数组添加的新项目。
  • toSource()返回该对象的源代码。

  • toString()把数组转换为字符串,并返回结果。

  • toLocaleString()把数组转换为本地数组,并返回结果。

  • unshift()向数组的开头添加一个或更多元素,并返回新的长度。

  • valueOf()返回数组对象的原始值

参考阮一峰《ECMAScript 6 入门》:http://es6.ruanyifeng.com/#do...

相关文章
相关标签/搜索