1、数组的创建形式
/**
js 中数组长度 可以随意改变(length属性),元素类型任意
**/
var arr = new Array();
var arr2 = [1,2,'abd',new Date(),true];
arr2.length = 3;
console.log(arr2); // Array [ 1,2,"abd"]
2、数组的常用方法
--push 、pop
--shift 、unshift
--splice、slice
--concat、join、sort、reverse
/**
push 和 pop
**/
var arr = [new Date(),false];
var returnVal = arr.push(1,2,true); // push方法向arr数组中追加元素(返回值为新数组的长度) 5
var obj = arr.pop(); // 从数组的尾部移除一个元素(返回值为被移除的元素)
/**
shift 和 unshift
**/
var arr = [1,2,3,true,new Date()];
var returnVal = arr.shift(); // 从arr头部移除一个元素(返回值为被移除的元素)1
var returnVal2 = arr.unshift(4,5,true,3,false); // 从arr 头部插入多个元素(返回值为新数组的长度) 9,已经被移除一个了所以为9
/**
splice(参数用法比较灵活多样,例子中只是其中一种用法)、slice 两个都是截取的方法
splice 方法操作数组本身
slice 方法不操作数组本身
**/
// splice 第一个参数:表示起始位置
// 第二个参数:表示截取的长度(个数)
// 第三个参数,及以后的参数 表示往 第一个参数的 位置插入的数据
// 第一、二个参数表示数组中要移除的数据
var arr = ['a','b','c','d'];
var returnVal = arr.splice(2,1,4,5,6); // 返回值为被截取移除的元素
console.log(returnVal); // Array [ "c" ]
console.log(arr); // Array [ "a", "b", 4, 5, 6, "d" ]
// show slice
// 第一个参数:表示截取的起始位置
// 第二个参数:表示截取的结束位置(但不包括该位置)
var arr2 = [1,2,3,4,5,6];
var result = arr2.slice(2,4); // 不操作数组本身,截取范围(左闭右开区间)返回值为截取的元素数组
console.log(arr2); // Array [1,2,3,4,5,6] 原数组arr2未发生改变
console.log(result); // Array [ 3, 4 ]
/**
concat 和 join ,两者都不操作数组本身
**/
// show concat
var arr1 = [1,2,3];
var arr2 = [true,4,5];
var result = arr1.concat(arr2); // 返回值为拼接后的新数组
console.log(result); // Array [ 1, 2, 3, true, 4, 5 ]
//show join
var arr3 = [false,null,1,'abc',undefined]
var result2 = arr3.join('-'); // 用 参数 中的字符串 拼接 数组中的 元素
console.log(result2); // false--1-abc-
/**
sort 和 reverse
sort 正序排序(默认任何元素都按字符串的顺序排序)
reverse 反转元素
**/
// show sort
var arr1 = [5,2,1,4,3];
var arr2 = [10,2,4,1,7];
var arr3 = [10,2,4,1,7];
console.log(arr1.sort()); // 操作数组本身,返回值为操作后的数组 Array [ 1, 2, 3, 4, 5 ]
console.log(arr1); // Array [ 1, 2, 3, 4, 5 ]
arr2.sort();
console.log(arr2); // Array [ 1, 10, 2, 4, 7 ] // 按字符串顺序排序
function compare(value1,value2){
return value1 < value2 ? -1 : (value1 == value2 ? 0 : 1)
}
arr3.sort(compare);
console.log(arr3) // Array [ 1, 2, 4, 7, 10 ] // 按 compare 定义的函数排序
// show reverse
var arr4 = [5,2,1,4,3];
console.log(arr4.reverse()); // 操作数组本身,返回值为操作后的数组 Array [ 3, 4, 1, 2, 5 ]
console.log(arr4); // Array [ 3, 4, 1, 2, 5 ]