lesson26-基础之数组

一、Array

1. 定义一个Array
  • let a = ['a', 'b']
  • let a = new Array('a', 'b')
2. var a = new Array(3)与var a = new Array(3,3)的区别

new Array(3)生成一个长度为3的空数组,new Array(3,3)生成一个第0项和第一项都是3,长度为2的数组

3. var a = [1, 2, 3] 与 var obj = { 0: 1, 1: 2, 2: 3, length: 3}的区别

a中的__proto__指向 Array.prototype,而obj中的 __proto__ 指向Object.prototype

image.png

4. 伪数组

形如{0:1, 1:2, 2:3, 3:4, length:4},但__proto__不指向Array.prototype的对象。在JS中,已知唯一的一个伪数组是函数参数[arguments]

5.foreach()

a.foreach(function(x,y){}),foreach()接收两个参数,第一个是数组的value,第二个是数组的key

6.sort(),sort是原地排序,会改变原值
  • sort()函数默认从小到大排序
  • sort(function(x,y){return x-y})从小到大排序
  • sort(function(x,y){return y-x})从大到小排序
7.join()
  • a.join() 默认用逗号连接
  • a.join("方方") 用括号里的内容连接
8.concat()
  • a.concat(b)连接两个数组,并返回一个新的数组

  • var b = a.concat([])用来复制一个数组。因为concat()会返回一个新的数组,所以b不等于a

9.map()

map()会对数组中的每一个元素执行括号内的函数并返回结果。


注:返回的数组中的元素取决于括号内函数的返回值,与原数组的元素没有关系

10.filter()

filter(fn)用括号内的函数对数组内容进行筛选,返回true的留下,false被筛选掉

11.reduce()

a.reduce(functin(prev, curr){ return prev+curr}, 0),reduce()接收两个参数,第一个参数是函数(该函数接收两个参数,第一个参数是上一次运算的结果,第二个参数是当前的数组元素),第二个参数是运算的初始值,即prev的初始值。

  • reduce()的一些神奇操作

二、Function

1. 声明函数

(1) var f = function(){} //具名函数
(2) function(){} //匿名函数
(3) var f = new Function('param1', 'param2',...,'functionBody') //用构造函数来声明

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容