数组

常用方法

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是一个很好的教程,讲解了如何使用类型数组处理二进制数据,以及它 在实际项目中的应用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值