(1) 数组的创建
两种方式
1.直接等于 []
var arr=[]; var arr1=[1,2,3];
2.new关键字声明 new Array();
var arr4=new Array(5); var arr5=new Array(5,8,6);
两种方式
1.直接等于 []
var arr=[]; var arr1=[1,2,3];
2.new关键字声明 new Array();
var arr4=new Array(5); var arr5=new Array(5,8,6);
(2) 数组的使用
数字的长度 arr1.length;
数组从小到大排序.sort()方法;
注意: .sort()方法排序有弊端 按照 unicode码 去排列 先比较第一位 按照第一位的排序 第一位如果相等 则 排序第二位
var arr = [23,12,1,34,116,8,18,37,56,50];
alert(arr.sort();
返回:[1, 116, 12, 18, 23, 34, 37, 50, 56, 8];
var arr = [23,12,1,34,116,8,18,37,56,50];
alert(arr.sort();
返回:[1, 116, 12, 18, 23, 34, 37, 50, 56, 8];
所以要自己定义一个sort方法必须自己定义一个函数
var arr = [23,12,1,34,116,8,18,37,56,50];
function sequence(a,b){
if (a>b) {
return 1;
}else if(a<b){
return -1
}else{
return 0;
}
}
console.log(arr.sort(sequence));
返回:[1, 8, 12, 18, 23, 34, 37, 50, 56, 116] (没有问题)
当然也可以把排序函数写到sort()方法里面:
var arr = [23,12,1,34,116,8,18,37,56,50];
var arr2 = arr.sort(function(a,b){
if (a>b) {
return 1;
}else if(a<b){
return -1
}else{
return 0;
}
})
console.log(arr2);
返回:[1, 8, 12, 18, 23, 34, 37, 50, 56, 116] (也没有问题)
也可以简化成这样的写法
因为:若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值
var arr = [23,12,1,34,116,8,18,37,56,50];
function sequence(a,b){
return a - b;
}
console.log(arr.sort(sequence));
返回:[1, 8, 12, 18, 23, 34, 37, 50, 56, 116] (也是正确的)
第一种遍历 利用for循环的i递变 取出每一个元素
for(var i=0;i<arr.length;i++){
var str=arr[i];
console.log(str);
}
for in 循环 专门遍历数组的
第二种遍历方式 for in 遍历数组 把数组的索引值放入我们自己声明的变量里面
for(var index in arr){
console.log(index);//索引
console.log(arr[index]);//数组的每项
console.log("-------------------");
}
var arr = [23,12,1,34,116,8,18,37,56,50];
function sequence(a,b){
if (a>b) {
return 1;
}else if(a<b){
return -1
}else{
return 0;
}
}
console.log(arr.sort(sequence));
返回:[1, 8, 12, 18, 23, 34, 37, 50, 56, 116] (没有问题)
当然也可以把排序函数写到sort()方法里面:
var arr = [23,12,1,34,116,8,18,37,56,50];
var arr2 = arr.sort(function(a,b){
if (a>b) {
return 1;
}else if(a<b){
return -1
}else{
return 0;
}
})
console.log(arr2);
返回:[1, 8, 12, 18, 23, 34, 37, 50, 56, 116] (也没有问题)
也可以简化成这样的写法
因为:若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值
var arr = [23,12,1,34,116,8,18,37,56,50];
function sequence(a,b){
return a - b;
}
console.log(arr.sort(sequence));
返回:[1, 8, 12, 18, 23, 34, 37, 50, 56, 116] (也是正确的)
第一种遍历 利用for循环的i递变 取出每一个元素
for(var i=0;i<arr.length;i++){
var str=arr[i];
console.log(str);
}
for in 循环 专门遍历数组的
第二种遍历方式 for in 遍历数组 把数组的索引值放入我们自己声明的变量里面
for(var index in arr){
console.log(index);//索引
console.log(arr[index]);//数组的每项
console.log("-------------------");
}
数组常用的增删改查截取拼接等
1.向数组最后一位插入指定元素
var arr = [1,2,3,4,5]; arr.push(6); console.log(arr);//[1, 2, 3, 4, 5, 6]
2.向数组第一位插入指定元素 返回新的长度
var arr = [1,2,3,4,5]; arr.unshift(6); console.log(arr);// [6, 1, 2, 3, 4, 5]
3.合并数组 不改变原数组
var arr=['张飞','关羽','刘备'] var arr1= arr.concat('吕布'); console.log(arr);// ["张飞", "关羽", "刘备"] console.log(arr1);//["张飞", "关羽", "刘备", "吕布"]
4.将数组转换成字符串
var str1= arr.join(); //什么也不加用逗号隔开 console.log(str1);//张飞,关羽,刘备 var str2= arr.join("");// 中间什么都没有直接拼接 console.log(str2);//张飞关羽刘备 var str3= arr.join("|"); console.log(str3);//张飞|关羽|刘备
5.从start开始到end结束,包含头不包含尾(截取)
var arr = [1,2,3,4,5]; var newArr=arr.slice(1,3); console.log(newArr);//[2, 3]
6.从start开始 删除length个(截取)
var arr = [1,2,3,4,5];
var s=arr.splice(1,3); console.log(s);// [2, 3, 4]
7.删除最后一位元素 返回删除的元素
var arr = [1,2,3,4,5]; console.log(arr.pop());//5 console.log(arr);//[1, 2, 3, 4]