常用方法
slice() 方法
- slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。
- 参数为负数, 则它表示在原数组中的倒数第几个元素抽取开始和结束抽取。 slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。
数组的entries、keys和values方法
-这三种从数组中得到迭代器的方法
let aEntries = numbers.entries(); // 得到键值对的迭代器
console.log(aEntries.next().value); // [0, 1] - 位置0的值为1
console.log(aEntries.next().value); // [1, 2] - 位置1的值为2
console.log(aEntries.next().value); // [2, 3] - 位置2的值为3
let aKeys = numbers.keys(); // 得到数组索引的迭代器
console.log(aKeys.next()); // {value: 0, done: false }
console.log(aKeys.next()); // {value: 1, done: false }
console.log(aKeys.next()); // {value: 2, done: false }
let aValues = numbers.values();
console.log(aValues.next()); // {value: 1, done: false }
console.log(aValues.next()); // {value: 2, done: false }
console.log(aValues.next()); // {value: 3, done: false }
使用from方法
- Array.from方法根据已有的数组创建一个新数组
let numbers2 = Array.from(numbers); //复制numbers数组
let evens = Array.from(numbers, x => (x % 2 == 0));
//传入一个用来过滤值的函数,返回偶数组成的数组
使用Array.of方法
- Array.of方法根据传入的参数创建一个新数组
let numbers3 = Array.of(1); //等价于let numbers3 = [1];
let numbers4 = Array.of(1, 2, 3, 4, 5, 6); //等价于let numbers4 = [1, 2, 3, 4, 5, 6];
使用fill方法
- fill方法用静态值填充数组
- numbersCopy.fill(填充内容, 开始索引,结束索引);结束位置不填充
let numbersCopy = Array.of(1, 2, 3, 4, 5, 6);
numbersCopy.fill(0); //[0, 0, 0, 0, 0, 0]
numbersCopy.fill(2, 1); //[0, 2, 2, 2, 2, 2]
numbersCopy.fill(1, 3, 5); //[0, 2, 2, 1, 1, 2]
主要用于创建并初始化数组
let ones = Array(6).fill(1);
创建了一个6个1组成的数组
使用copyWithin方法
copyWithin方法复制数组中的一系列元素到同一数组指定的起始位置。
copyWithin(目标位置, 起始位置, 结束位置); 结束位置不复制
直接将复制的内容从目标位置开始依次覆盖
copyArray = [1, 2, 3, 4, 5, 6];
copyArray.copyWithin(1, 3, 5); //[1, 4, 5, 4, 5, 6]
console.log(copyArray.copyWithin(0,2)) //[ 5, 4, 5, 6, 5, 6 ]
排序元素
自定义排序
- 按照数组中对象的特定属性进行排序
var friends = [
{ name: 'John', age: 30 },
{ name: 'Ana', age: 20 },
{ name: 'Chris', age: 25 }
];
function comparePerson(a, b) {
if (a.age < b.age) {
return -1
} if (a.age > b.age) {
return 1
} return 0;
}
console.log(friends.sort(comparePerson));
搜索
- indexOf方法返回与参数匹配的第一个元素的索引,lastIndexOf返回与参数匹配的后一个元素的索引。
- 找不到返回-1
find和findIndex方法
- find和findIndex方法接收一个回调函数,搜索一个满足回调函数条件的值,即数组中的这个值传入回调函数返回true
- find方法返回第一个满足条件的值,findIndex方法 则返回这个值在数组里的索引。如果没有满足条件的值,find会返回undefined,而findIndex 返回-1。
使用includes方法
- 如果数组里存在某个元素,includes方法会返回true,否则返回false
- 可以第二个参数的位置指定开始搜素的索引位置
类型数组
- 类型数组则用于存储单一类型的数据。它的语法是let myArray = new TypedArray (length),其中TypedArray可以替换成需要的类型数组名
- 使用WebGL API、进行位操作、处理文件和图像时,类型数组都可以大展拳脚。它用起来和 普通数组也毫无二致
- http://goo.gl/kZBsGx是一个很好的教程,讲解了如何使用类型数组处理二进制数据,以及它 在实际项目中的应用