一、定义数组
(1)var arr = [ ]
在里面放入一个数字5,会建立一个含有元素5的数组
(2)var arr = new Array( )
在里面放入一个数字5,会建立一个含有5个空元素的数组
二、基本操作
访问:arr[i]
修改:arr[i] = value
添加:arr = value
数组长度:arr.length
注意:长度可以获取,也可以修改
遍历数组:
for(var i = 0;i<arr.length;i++){
console.log(arr[i])
}
注意:数组中第一个元素的下标永远是0
三、排序方法
(1)冒泡排序:比较相邻两个元素的大小,并按规则排列
for(var i = 0;i < arr.length-1;i++){
for(var j = 0;j < arr.length-1;j++){
if(arr[j] > arr[j+1]){
var a = arr[j];
arr[j] = arr[j+1];
arr[j+1] = a;
}
}
}
(2)选择排序:每一轮排序都找一个最大值或者最小值,然后按规则将它们排列在合适的位置上
for(var i = 0;i < arr.length-1;i++){
for(var j = 1;j < arr.length;j++){
if(arr[i] > arr[j]){
var a = arr[i];
arr[i] = arr[j]
arr[j] = a;
}
}
}
四、数组方法
(1)unshift:在数组开头添加一个或多个元素--返回值为数组的长度
var arr = ['a','b','c'];
var l = arr.unshift('d')
console.log(arr) // ['d','a','b','c']
console.log(l) // 4
(2)shift:删除数组中的第一个元素--返回值为被删掉的元素
var arr = ['a','b','c'];
var ele = arr.shift()
(3)push:在数组结尾添加一个或多个元素--返回值为数组的长度
var arr = ['a','b','c'];
var l = arr.push('d')
console.log(arr) // ['a','b','c','d']
console.log(l) // 4
(4)pop:删除数组中的最后一个元素--返回值为被删掉的元素
var arr = ['a','b','c'];
var ele = arr.pop()
console.log(arr) // ['a','b']
console.log(ele) // 'c'
(5)splice:对数组进行增、删、改的操作
var arr = ['a','b','c'];
//增
arr.splice(1,0,'d')//['a','d','b','c']
//在下标为1的位置,删除0个元素,增加元素‘d’
//删
arr.splice(1,1)// ['a','c']
//在下标为1的位置,删除1个元素
//改
arr.splice(1,1,'d')// ['a','d','c']
//在下标为1的位置,删除1个元素,再把元素‘d’放在这个位置上
(6)concat:数组之间的拼接
var arr = ['a','b','c']
var brr = ['d','e','f']
//将arr和brr合并成一个更大的数组
var crr = arr.concat(brr)// ['a','b','c','d','e','f']
//或将一个和多个值与数组进行合并成一个更大的数组
var crr = arr.concat(1,2,3)//['a','b','c',1,2,3]
(7)sort:数组的排序
var arr = [9,5,3,7,1,6,4,8,2]
arr.sort()//默认排序
console.log(arr)//[1,2,3,4,5,6,7,8,9]
arr.sort(function(a,b){// a代表前面的数,b代表后面的数
return a-b;//升序
return b-a;// 降序
})
(8)reverse:数组的反转
var arr = ['a','b','c']
arr.reverse()
console.log(arr)//['c','b','a']
(9)join:将元素用指定的连接符连在一起,组成一个字符串
var arr = ['a','b','c']
var str = arr.join('_')//用连接符链接元素
console.log(str)//a_b_c
var str = arr.join( )//默认情况下是使用逗号连接元素
console.log(str)//a,b,c
var str = arr.join('')//直接连接元素,中间没有其他内容
console.log(str)//abc
(10)slice:截取数组
var arr = ['a','b','c','d','e','f'];
// 将数组中的 'b','c','d'截取出来,组成新的数组
var brr = arr.slice(1,4)
//从下标为1的元素开始截取,到下标为4的元素停止(截取原则:左闭右开)
console.log(brr)// ['b','c','d']
//但是如果没有声明截取到那个元素停止的话,就会默认截取到元素的末尾
var crr = arr.slice(1)
console.log(crr)//['b','c','d','e','f']
ES5新增数组方法
(1)indexOf:数组元素查询方法--返回值为所找到元素的下标;如果没有找到,就返回-1
lsatIndexOf:从后向前查找
语法:arr.indexOf(元素,查找的起始下标)
var arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5)); // 2 - 查找数字5在数组中第一次出现的下标
console.log(arr.lastIndexOf(5)); // 5 - 查找数字5在数组中最后一次出现的位置
console.log(arr.indexOf(5,3)); // 5 - 从下标2开始查找数字5在数组中第一次出现的位置
console.log(arr.lastIndexOf(5,4)); // 2 - 从下标4开始查找数字5在数组中最后一次出现的下标
console.log(arr.indexOf("5")); // -1 - 数组中全是数字,找不到字符串5,所以返回-1
(2)forEach:遍历数组方法
语法:arr.forEach(function(值,下标,当前数组){代码段});
一般用法:arr.forEach(function(值){代码段});
var arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
console.log(x + '|' + index + '|' + (a === arr));
});
// 输出为:
// 1|0|true
// 2|1|true
// 3|2|true
// 4|3|true
// 5|4|true
(3)map:遍历数组,处理其中的每个元素,将其组成新的数组并返回
语法:var brr = arr.map(function(值){return 新的元素})
var arr = [1, 2, 3, 4, 5];
var brr = arr.map(function(item){
return item*item;
});
console.log(brr); //[1, 4, 9, 16, 25]
(4)filter:提取数组中满足条件的值,组成新数组并返回
语法:arr.filter(function(值, 下标, 当前数组){return 筛选条件});
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(v, index) {
return v>5
});
console.log(arr2); //[6, 7, 8, 9, 10]
五、元素类型
基本类型:①在定义的时候,将值储存在栈中
②赋值时,将值复制一份放在另一个变量空间中
③做全等比较时,先比较数据类型,再比较值
引用类型:①在定义的时候,将值储存在堆中,将地址存在栈中
②赋值时,将栈中存的地址复制一份放在另一个变量空间中
③做全等比较时,是比较在栈中存的地址是否相同
基本类型有:number 、string 、boolean 、undefined 、null
引用类型有:{对象} 、[数组] 、function

被折叠的 条评论
为什么被折叠?



