[关闭]
@demonly 2017-10-14T09:03:10.000000Z 字数 3519 阅读 852

Array

JavaScript


Array

valueOf()返回数组本身,toString()方法返回以逗号分隔的字符串,join() 方法接受一个参数,使用指定分隔符将数组拼接成字符串。

重排序方法

reverse()方法反转数组项的顺序。
sort()方法使用冒泡排序算法对数组进行排序,默认情况下是按照字符串的顺序升序排序。可以通过指定比较函数的方式来改变排序方式,比较函数接受两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果第一个参数应该位于第二个之后则返回一个正数。

  1. function compare(value1, value2) {
  2. if(value1 < value2) {
  3. return -1;
  4. } else if (value1 > value2) {
  5. return 1;
  6. } else {
  7. return 0;
  8. }
  9. }
  10. values.sort(compare);

操作方法

  1. //删除数组位置2的项,再从数组位置2加入插入两个字符串
  2. color.splice(2,1,"red","green");
  3. // 从索引 0 开始复制值,从索引 0 开始粘贴值
  4. let n = [1, 2, 3, 4, 5, 6, 7];
  5. n.copyWithin(2, 0);
  6. console.log(n); // [1, 2, 1, 2, 3, 4, 5]

位置方法

  1. let numbers = [25, 30, 35, 40, 45];
  2. numbers.find(n => n > 33); // 35

迭代方法

有5个迭代方法,每个方法都接受两个参数:要在每一项上运行的函数和运行该函数的作用域对象。传入这些方法中的函数会接受三个参数:数组项的值、该项在数组中的位置和数组对象本身。

归并方法

有2个并归数组的方法,reduce()和 reduceRight(),这两个方法会迭代数组的所有项,然后构建一个最终的返回值。reduce()方法从前往后遍历,reduceRight()方法从后往前遍历。这两个方法接受两个参数:一个在每一项上调用的函数和作为并归的基础值。传入的函数接受4个参数,前一个值、当前值、项的索引和数组对象。

  1. //求和
  2. var values = {1,2,3,4,5};
  3. var sum = values.reduce(function(prev, cur, index, array){
  4. return prev + cur;
  5. });

创建数组

  1. function translate() {
  2. return Array.from(arguments, value => value + 1);
  3. }

Set

不含有重复元素的有序列表,size 属性保存了 Set 集合中元素的数量。
Set 集合初始化接收一个数组,将该数组中的元素添加到 Set 集合中。

Set 集合具有以下方法:

Weak Set

Weak Set 保存的是对象的弱引用,当对象没有被强引用时对象就会被释放。

Map

保存许多键值对的有序列表,键和值支持所有数据类型,数字 5 和字符串 '5' 会被判定为两种类型。
Map 集合初始化接收任意多个两元素数组,第一个元素作为键名,第二个元素作为值。

Map 集合具有以下方法:

Weak Map

Weak Map 的键名保存的是对象的弱引用,值保存的是强引用,当键名被释放时会移除整个键值对。

ArrayBuffer

ArrayBuffer 直接储存二进制数据,初始化中传入缓冲区的字节长度,可以通过 byteLength 属性查看缓冲区的比特数量。
可以通过 slice() 方法分割已有缓冲区来创建一个新的缓冲区。

DataView

DataView 是数组缓冲区视图,初始化时传入一个 ArrayBuffer 作为第一个参数,还可以传入第二个参数作为偏移量,第三个参数作为比特数量。

DateView 拥有以下属性

DataView 对数据的读取与写入支持以下数据类型: int8, uint8, int16, uint16, int32, uint32, float32, float64。以 int8 为例,读取和写入数据的方法:

TypedArray

定型数组是用于数组缓冲区的特定类型的视图,在定型数组中强制使用特定的数据类型,定型数组使用数值型索引进行读取和写入。

定型数组有以下构造函数:Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array。其中 Uint8ClampedArray 会对溢出的数据进行强制转换为 0 或者 255,其他类型不会进行强制转换。

定型数组的创建有三种方法:

定型数组支持以下数组方法:
copyWithin, findIndex, lastIndexOf, slice, entries, forEach, map, some, fill, indexOf, reduce, sort, filter, join, reduceRight, values, find, keys, reverse

set 方法接受两个参数,一个数组或者定型数组,一个可选的偏移量,将数组中的数据复制到定型数组中。

subarray 方法接受两个参数,开始位置和结束位置,返回一个新的定型数组。

为定型数组中不存在的索引赋值会被忽略。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注