JS 数组API详解 学习笔记总结

数组API详解:

一,基础:

1.1数组的创建:

两种方法:直接量构造函数

var arr = [1,2,3]//直接量形式

直接量构建数组,数组里的元素可以是任意类型的值。甚至可以是表达式和函数等。

var arr = new Array(3)//这里的意思是在内存中分配一个大小为三的存储空间,里面没有任何值,甚至索引都没有规定,而arr只是这个没有任何值的空间的地址引用。
var arr = new Array(1,2,3,4)//这样才是来创建一个数组,而数组的元素是1,2,3,4四个元素。

推荐用直接量来定义数组。

1.2数组的读写:

arr[index]来读取数组中规定的元素的值。index代表数组中的索引。因为数组是对象的特殊形式,所以当你使用一个不合法的字符或者数字当索引的时候,数组会自动把它当自己的属性名,此时的数组相当于一个对象。

1.3稀疏数组:

稀疏数组就是包含从0开始的的不连续索引的索引。例如:

var arr = new Array(4)
	arr[3] = 12
//此时的arr就是一个稀疏数组。
1.4数组的长度:

每一个数组都有一个length属性,该属性的作用是来描述该数组中的元素的个数,准确的来说是描述数组开辟单位空间的个数,因为有稀疏数组的存在。我们可以用length属性来扩充和删除数组。

var arr = [1,2,3,4,5]
	arr.length = 3
console.log(arr)
//[1,2,3]

arr.length = 3表示让该数组的元素只剩下三个。当我们扩充数组的时候:

arr.length = 7

此时该数组是一个稀疏数组,因为此时的数组后几个只分配了空间,并没有赋值。

1.5数组的添加和删除:

我们可以直接来声明新的索引来赋新值,如:

var arr = [1,2,3]
arr[3] = 4//此时的数组就是[1,2,3,4]
//我们也可以通过改变length来删除元素

但是我们最常用的不是这种方式。我们用四个 方法来对数组进行删除和添加。

push/popshift/unshift。我们后面将会讲到。

1.6数组的遍历:

我们常用的数组遍历有两种:for循环for/in循环。后面还会讲到forEach()函数

for循环是我们比较熟知的,我们这里讲一下for/in循环:

for(var key in arr){
   
	console.log(arr[key])
}

该循环用来打印数组中的元素,key是数组的索引,for/in循环会跳过稀疏数组中空白的部分。

1.7数组方法:
  • sort(function(a,b){})

    该函数的所用是将数组中的元素进行排序,然后返回排序后的数组。当我们不传入任何参数,那么sort将把数组中的元素以字母表的顺序排序(如果有必要会将值临时转化为字符串进行比较)。如果数组包含undifine,那undifine将会排到最后。大多数时候我们并不需要使用字母表的顺序,那我们就必须要传入一个比较函数。实例如下:

    var arr = [1,3,2,4,6,3,4]
    	arr.sort(function(a,b){
         })
    

    我们传入了一个比较函数,比较函数有两个形参,当我们调用sort函数的时候,该函数会把要匹配的两个值传给a,b。他是两个两个的比,如1和2,2和3,3和4这种形式,我们使用这个函数的目的是将两个传入值交换在数组的位置,就是这两个值谁前谁后的问题。如果比较函数返回的值小于零,那么这两个值就不交换位置,如果返回的值大于零,那么就交换位置,等于零,说明两个值相等,我们就不用交换。记住,是返回值决定交不交换位置。此时我们就可以按顺序来排数了:

    var arr = [1,3,2,4,6,3,4]
    	arr.sort(function(a,b){
         
    		return a - b
        })
    

    如果比较函数的返回值是a - b,那么最后数组的值一定是从小到大排,因为当a>b,那么返回值一定大于0,则两个值会交换位置,会把大的值放置在后面。如果我们想从大到小,我们就可以返回b - a

  • reverse()

    该方法是将数组的元素倒置,并返回倒置后的数组,意思就是说它可以改变数组。

  • join(char)

    该函数的作用是将数组中的元素用一种方式连接起来。该函数返回的是连接后的字符串。如果我们不传入参数,就默认使用来连接,比如:

    var arr = [1,2,3,4]
    console.log(arr.join("-"))
    //"1-2-3-4"
    

    我们想用什么字符连接数组中的元素,就将改字符传入到join函数就可以了。

  • concat(val,val…)

    concat函数的用法如下:

    var arr = [1,2,3]
    	arr.concat(4,5)//返回[1,2,3,4,5]
    	arr.concat([4,5])//返回[1,2,3,4,5]
    	arr.concat(4,[[5]])//返回[1,2,3,4,[5]]
    

    concat函数创建并返回一个新数组,新数组的元素包含有原始的数组元素传入到该函数中的参数。但是如果传入该函数的是数组,那么连接的是数组内的元素,而并非是数组本身,**该函数不会递归扁平化数组的数组。**当然,传入的值可以是任意值,对象,数组等。concat其实也是变相的添加元素,只不过可以批量添加。

  • slice(start,end)

    slice函数返回一个新数组,该数组内的元素是原数组中的部分元素。我们可以向该数组传入数字,表示我们要复制原数组中的哪些元素,所以不会改变原数组。截取的规律是:含start不含end,只传一个则该值为起点一直截取到最后

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值