数组及其方法的使用

数组

数组是JavaScript中一种复杂数据类型,可以在一个变量中存储多个有顺序的数据

数组的创建

1. 字面量创建数组
var arr = [1,2,3,4,5]
数组索引    0 1 2 3 4
2.标准方式创建数组
var arr = new Array(1,2,3,4,5)

数组的操作

1.数组的拷贝

数组的拷贝分为浅拷贝和深拷贝
浅拷贝:将原先数组进行复制,本质上是将原数组的地址复制给新数组,任何一个数组的操作都回影响到两个数组
深拷贝:将原先数组的值添加到新数组中,两个数组的操作互不影响

浅拷贝

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

深拷贝

var arr = [1,2,3,4,5]
var arr2 = []
for(var i = 0;i<arr.length;i++) {
	arr2[i] = arr[i]
}
console.log(arr,arr2) //[1,2,3,4] [1,2,3,4]
arr[2] = 5;
arr2[0] = 0;
console.log(arr,arr2) //[1,2,5,4,5] [0,2,3,4,5]
2.添加数据

arr.push(dat):数组末尾追加一个数据

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

arr.unshift(dat):数组的头部添加一个数据

var arr = [1,2,3]
arr.unshift(4);
console.log(arr) //[0,1,2,3]
3.删除数据

arr.pop():删除数组末尾的一个数据

var arr = [1,2,3]
arr.pop();
console.log(arr) //[1,2]

arr.shift():删除数据头部一个数据

var arr = [1,2,3]
arr.shift();
console.log(arr) //[2,3]
4.特殊操作

arr.splice(start,length,repalce) 删除/添加/替换数组数据

var arr = [1,2,3,4]
arr.splice(1,1)
console.log(arr) // [1,3,4]
arr.splice(1,0,5)
console.log(arr) //[1,5,3,4]
arr.splice(1,1,6)
console.log(arr) //[1,6,3,4]
5.其他操作
函数名称描述
arr.join(cahr)将数组使用指定的字符char拼接,返回一个字符串
arr.concat(a)将数组a链接到数组arr的末尾得到一个新数组,对原数组无影响
arr.reverse()翻转数组数据
arr.slice(start,end)截取数据·
arr.indexOf(dat)在数组中查询数据位置,返回其对应索引
Array.isArray(dat)判断指定数据dat是否是数组
6.关于数组的算法(冒泡排序与选择排序)

请移步
冒泡排序
选择排序

7.数组排序

JavaScirpt中对于数组,提供了排序数组:sort(fn)

基本排序:排序普通数值数据

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

排序JSON对象数据

var names = [{name: "zhangsan",age:18},{name:"lisi",age:20},{name:"wangwu",age:32},{name:"xuliu",age:16}]
names.sort(function(){
	return a.age - b.age
})

随机排序,将给丁的一个数据打乱

var names = [{name: "zhangsan",age:18},{name:"lisi",age:20},{name:"wangwu",age:32},{name:"xuliu",age:16}]
names.sort(function(){
	return Math.random() - 0.5
})
8.数组的高级函数

every(fn):对数组中所有数据进行判断,若全部为true才返回true

var arr = [2,5,6,4,7]
var arr_every = arr.every(function(value,index){
			return value < 6
})

some(fn):对数组中所有数据进行判断,若有一个数据为true,则返回true

var arr = [2,5,6,4,7]
var arr_some = arr.some(function(value,index){
			return value < 6
})

filter(fn):数组中的数据按照指定条件进行筛选,返回筛选后的数组

var arr = [2,5,6,4,7]
var arr_filter = arr.filter(function(value,index){
			return value < 6
})

map(fn):数组中的所有数据按照指定的算法进行运算,得到运算后的数组

var arr = [2,5,6,4,7]
var arr_map = arr.map(function(value,index){
			return value * 2
})

forEach(fn):数组提供的一种遍历函数

var arr = [2,5,6,4,7]
var arr_forEach = arr.forEach(function(value,index){
		console.log(value)
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值