JavaScript基础-数组

数组也是一个对象,它和普通的对象功能一样,也是用来存储一些值的。

不同的是普通对象使用字符串作为属性名,而数组使用数字作为索引操作元素。

索引:从0开始的整数就是索引,比如有一个数组[1,2,3,4],那么索引0对应的元素就是1,索引1对应的元素就是2,以此类推...

创建一个数组

方法一:var 数组名 = new Array()

方法二:使用字面量来创建一个数组

语法:var 数组名 = [元素]

使用字面量创建数组时,可以在创建时就指定数组中的元素,将要添加的元素作为构造函数的参数传递进去,元素之间使用逗号隔开。

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

数组中的元素可以是任意的数据类型,也可以是对象、函数、也可以是数组。

向数组中添加元素

语法:数组[索引] = 值

arr[1] = 5

读取数组中的元素 

语法:数组[]

如果读取不存在的索引,也不会报错,而是返回undefined

获取数组的长度

可以使用length数字那个来获取数组的长度(即元素个数)

语法:数组名.length

对于连续的数组,使用length可以获取到数组的长度;对于不连续的数组,使用length会获取到数组的最大索引+1。所以尽量不要创建非连续的数组。

修改length

如果修改的length大于原长度,则多出的部分会空出来

如果修改的length小于原长度,则多余的元素会被删除

数组的常用方法

push():该方法可以向数组的末尾添加一或多个元素,并返回数组的新长度

可以将要添加的元素作为方法的参数传递,这样这些元素将会自动添加到数组的末尾。

<script type="text/javascript">
var arr = [1,2,3,4]
arr.push(5)
console.log(arr)
</script>

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

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

向前边插入元素时,其他元素的索引会依次调整。

slice():可以用来从数组中提取指定的元素

该方法不会改变数组元素,而是将截取到的元素封装在一个新数组中返回。

参数:

第一个:截取开始的位置的索引,包含开始索引对应元素

第二个:截取结束的位置的索引,不包含结束索引对应的元素

第二个参数可以省略不写,此时会截取从开始索引往后的所有元素;索引也可以传递一个负值,如果传递一个负值,则往后从前计算。比如:-1指的是倒数第一个。

<script type="text/javascript">
var arr = [1,2,3,4]
var arr1 = arr.slice(1,2)
console.log(arr1)
</script>

splice():可以删除数组中的指定元素

使用splice()会影响到原数组,会将指定数组元素从原数组中删除,并将删除的元素作为返回值返回。

参数:

第一个:表示开始位置的索引

第二个:表示删除的数量

第三个及以后:可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边

caoncat():可以连接两个或多个数组,并将新的数组返回

该方法不会对原数组产生影响。

join():该方法可以将数组转换为一个字符串

该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回,可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符。如果不指定则默认使用逗号作为连接符。

reverse():该方法用来反转数组

该方法会直接修改数组。

sort():可以用来对数组元素进行排序

该方法会影响原数组,默认使用Unicode编码排序。即使是纯数字的数组,使用sort()排序时也会得到错误的排序。

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

通过在sort()中添加一个回调函数来指定排序规则。

arr.sort(function(a,b){})

回调函数需要定义两个形参,浏览器会分别使用数组中的元素作为实参去调用回调函数,调用哪一个元素我们不确定,但能确定的是a对应的数组元素一定在b对应的元素前边。

浏览器会根据回调函数的返回值来决定元素的顺序:

  • 如果返回的是一个大于0的值,则元素会交换位置
  • 如果返回的是一个小于0的值,则元素不会交换位置
  • 如果返回的是0,则认为元素相等,位置不变

所以我们在回调函数中可以添加代码:

  • 如果需要升序,则返回a-b
  • 如果需要降序,则返回b-a

arr.sort(function(a,b){return a-b})

 数组遍历

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

for(var i = 0;i<arr.length;i++){
console.log(arr[i])
}

数组的foreach方法

除了使用for循环来遍历数组外,还可以使用数组的foreach()方法来遍历数组,但是该方法只支持IE8以上的浏览器。

foreach()方法需要一个函数作为形参,该函数数组中有多少个元素就会被调用多少次,每次执行时浏览器都会将遍历到的元素以实参的方式传递进来,我们可以定义形参来读取这些内容

浏览器每次调用函数都会传递三个参数:

第一个:就是正在当前遍历的元素

第二个:就是当前正在遍历元素的索引

第三个:就是当前正在遍历的数组

我们一般只使用前两个参数:

arr.foreach(function(number,index){

console.log("元素="+number+",索引是"+index)

})

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值