数组:最简单的内存数据结构

数组是最简单的内存数据结构

删除数组元素的方法:pop(删除数组里最后元素),shift(删除第一个元素)

添加数组元素的方法:push(把元素添加到数组末尾),unshift(把数值插入到数组的开头)

在任意位置添加或删除元素:splice(index,num,value),num为0时即为插入元素

通过push和pop方法,可以用数据来模拟栈

通过shift和unshift方法,可以用数组模拟基本的队列数据结构


二维数组和多维数组

矩阵:二维数组;数组的数组

数据结构中有几个维度都没有关系,我们可以用循环迭代每个维度来访问所有的格子(如3*3*3的矩阵)


数组合并:concat

迭代器函数:

  1. every方法迭代,迭代每个元素,直至返回false
  2. some方法迭代,迭代每个元素,直至返回true
  3. foreach方法迭代,迭代整个数组
  4. 用map和filter方法,返回新数组。filter方法返回的新数组由使函数返回true的元素组成。
  5. reduce方法。reduce(preVal,curVal,[index],[arrary])。返回一个将被叠加到累加器的值,reduce方法停滞执行后会返回这个累加器。eg:对一个数组中的所有元素求和。
let numbers=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];

numbers.reduce((previous,current)=> previous + current);

map,filter,reduce是js函数式编程的基础

ES6和数组的新功能:

  1. for...of 循环迭代
  2. @@iterator对象,需要通过Symbol.iterator来访问,不断调用迭代器的next方法。
iterator.next().value
  1. 数组的 entries,keys,values方法
    1. entries 方法返回包含键值对的@@iterator,使用集合,字典,散列表等数据结构时,能取出键值对是很有用的。
    2. keys 方法返回包含数组索引的@@iterator
    3. values 方法返回的@@iterator 则包含数组的值。
  2. Arrary.from 方法根据已有的数组创建一个新数组
  3. Arrary.of 方法根据传入的参数创建一个新数组
  4. fill 方法用静态值填充数组
let arr =Arrary(6).fill(1);
 // [1,1,1,1,1,1]
  1. 使用copyWithin 方法,复制数组中一系列元素到同一数组指定的起始位置。

排序元素:

  1. reverse 方法,倒序输出数组
  2. sort 方法在对数组做排序时,把元素默认成字符串进行相互比较

搜索:

  1. indexOf 方法返回与参数匹配的第一个元素的索引,返回-1则为不在数组里
  2. lastIndexOf 返回与参数匹配的最后一个元素的索引,返回-1则为不在数组里
  3. find 和 findIndex 方法接受一个回调函数,搜索一个满足回调函数条件的值。find 返回第一个满足条件的值,findIndex 返回这个值在数组里的索引,没有满足条件的值,find会返回 undefined,findIndex 返回 -1。
  4. 如果数组里存在某个元素,includes 方法会返回true,否则返回 false,如果传入一个起始索引,搜索从指定位置开始。
let n=[7,6,5,4,3,2,1]; 
console.log( n.includes(4,5)); 
//false 索引5之后元素不含 4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值