数组
是什么:
数组是一组有序集合,集合中的内容是元素。
JavaScript的数组可以包括任意数据类型。例如:
[1, 2, 3.14, 'Hello', null, true];
JavaScript的Array可以包含任意数据类型,并通过索引来访问每个元素
为什么:
存储多个值
数组的属性
arr.length;//获取数组长度
改变数组的长度
arr.length=99;//请注意,直接给Array的length赋一个新的值会导致Array大小的变化
arr[11] = 99;//请注意,如果通过索引赋值时,索引超过了范围,同样会引起Array大小的变化
然而,JavaScript的Array却不会有任何错误。在编写代码时,不建议直接修改Array的大小,访问索引时要确保索引不会越界。
常见操作:对数组元素增删改查、截取
slice()
ar arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']
如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,我们可以很容易地复制一个Array:
push和pop()
arr.push(1,23,"a");//["A", "B", "C", "D", "E", "F", "G", "e", 1, 23, "a"]
向Array的末尾添加若干元素,pop()则把Array的最后一个元素删除掉:
unshift()和shift()
arr.unshift(1,2,3,"j","k","l");//[1, 2, 3, "j", "k", "l", "A", "B", "C", "D", "E", "F", "G", "e", 1, 23]
如果要往Array的头部添加若干元素,使用unshift()方法
arr.shift(); // 'A'
shift()方法则把Array的第一个元素删掉:
splice()
splice()方法是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素
arr.splice(2, 3, 'Google', 'Facebook');//2表示索引,3表示删除的项目,后面的表示从索引2的位置开始添加的新内容
arr.splice(2, 2);
arr.splice(2, 0, 'Google', 'Facebook');
sort()
var arr = ['B', 'C', 'A'];
arr.sort();//["A", "B", "C"]
sort()方法默认把所有元素先转换为String再排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序
concat()
concat()方法把当前的Array和另一个Array连接起来,并返回一个新的Array
var arr = ['A', 'B', 'C'];
var added = arr.concat([1, 2, 3]);//concat()方法并没有修改当前Array,而是返回了一个新的Array
join()
join()方法是:把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串:
var arr = ['A', 'B', 'C', 1, 2, 3];
arr.join('-'); // 'A-B-C-1-2-3',
如果Array的元素不是字符串,将自动转换为字符串后再连接。
every(isEven),some(isEven),forEach(isEven),map(isEven),filter(isEven)
function isEven(x){
console.log(x);
return x%2==0?true:false;
}
var arr=[1,2,3,4,5,6,7,8,9];
var res1=arr.every(isEven);//遇到返回值为false就停下来
var res1=arr.some(isEven);//遇到返回值为true就停下来
var res1=arr.forEach(isEven);//循环结束后停下来
var res1=arr.map(isEven);//循环结束后停下来,返回值:是函数的返回值
var res1=arr.filter(isEven);//过滤出返回值为true的参数,返回值:是参数,是让函数返回值为true的参数
console.log(res1);
创建数组
// 定义一 通过new关键字
var arr = new Array(); // 空数组
var arr2 = new Array(8);// 创建8个元素的数组
var arr3 = new Array(1,2);// 该数组存放两个值1和2
var arr4 = new Array("Jan","Feb","Mar");
// 定义二 数组直接量
var arr6 = [];// 空数组
var arr7 = [1];// 有一个元素是1
var arr8 = [1,2,3,4];// 多个元素由逗号隔开