【JS基础】数组、数组字面量、数组方法

数组

内建对象
宿主对象对象
自定义对象

内建对象:有ES标准定义的对象。

数组(Array),数组也是一个对象。它和普通的对象功能类似,也是用来存储一些值的。
不同的是,普通对象是使用字符串作为属性名的,数组使用数字作为索引操作元素。
索引:从0开始的整数。

数组的存储性能比普通对象更好。在开发中经常使用数组来存储一些数据。

创建数组:

var arr = Array();

添加数组:

arr[0] = 10;
arr[1] = 33;

若读取不存在的索引,不会报错,而是返回undefined。

获取数组长度:
使用length属性

console.log(arr.length);

对于非连续的数组,使用length会返回最大索引的值+1。尽量不要创建非连续的数组。

也可以用length设置数组的长度。

arr.length = 10;

如果修改的length多于原长度,则多出部分会空出来。
如果修改的length小于原长度,则多出来的元素会被删除。

添加元素:

arr[arr.length] = 添加值;

总会添加在最后。

数组字面量

使用字面量来创建数组:

var arr = [1, 2, 3, 4, 5, 10];

使用构造函数创建数组,也可以添加元素:

var arr = new Arrary(1, 2, 3);

创建一个数组,数组中只有一个元素10

arr = [10]; //创建一个只有10的数组
var arr2 = new Array(10); //创建一个长度为10的数组

数组不只能存储数值,也可以是任意类型(包括对象(数组))。

数组方法

push()方法:该方法可以向数组末尾添加一个或多个元素,并返回数组新的长度。可以将要添加的元素作为方法的参数传递。

var result = arr.push(‘唐僧’, '孙悟空');

pop()方法:该方法可以删除数组的最后一个元素,并返回删除的元素

var result = arr.pop();

unshift()方法:向数组开头添加一个或多个元素,并返回数组新的长度。

shift()方法:删除数组开头第一个元素,返回被删除的元素。

数组的遍历

所谓的遍历数组,就是将数组中所有的元素都取出来。

for循环
i:index

 for(var i = 0; i < arr.length; i++){
}

forEach方法
forEach需要一个函数作为参数。
像这种函数,由我们创建,但不由我们调用的,称为回调函数

arr.forEach(function(){
	console.log();
});

数组中有几个元素,就会执行几次,每次执行时,浏览器会将遍历的元素以实参的形式传递进来。

浏览器会在回调函数中传递了三个参数:
第一个参数-数组元素value
第二个参数-索引index
第三个参数-数组obj

slice()方法
可以从数组中提取指定元素。

array.slice(start, end);

第一个参数是截取开始的索引(包含),第二个参数是截取结束的索引(不包含)。
该方法不会改变元素组,而是将截取到的元素封装到一个新的数组返回。

如果第二个参数不写,就是从start索引开始到结束的所有元素。
参数可以是负数,表示倒数第几个。

splice()方法
删除数组中的指定元素,并添加新元素。
会影响到原数组,会将指定元素从原数组中删除。
第一个参数,表示开始位置的索引(包括)。
第二个参数表示删除的数量
第三个参数及以后表示传递的新元素(如果第二个参数为0,则直接是添加元素)。

其他方法

concat()方法
链接两个或多个数组,并将新的数组返回,不会对原数组产生影响。不仅可以链接数组,还可以链接元素。

var result = arr.concat(arr, arr2, "牛魔王");

join()方法
可以将数组转化为一个字符串,该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回。

在join()中可以指定一个字符串作为参数,这个字符串会作为数组中元素的连接符。如果不指定,默认为 , 作为连接符。

reverse()方法
该方法用来反转数组。该方法会直接修改原数组。

arr.reverse();

sort()方法
可以用来对数组进行排序。也会影响原数组。默认会按照Unicode编码排序。

即使对于纯数字的数组,使用sort()排序时,也会按照Unicode编码排序,可能会得到错误的结果,如11会比2大。

我们可以自己来指定排序的规则。

在sort中添加一个回调函数,回调函数定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数,会根据返回值决定元素的顺序。
第一个参数一定在第二个参数前面。
浏览器会根据回调函数的返回值来决定元素的顺序。
如果返回大于0的值没准儿交换位置
如果返回小于等于0的值,则位置不变

srr.sort(function(a, b){
	return a-b;
});
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cheerio_inf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值