创建数组的俩种方式:
1、利用数组字面量
var arr = [1, 2, 3];
console.log(arr); //输出结果为1,2,3
2、利用new Array()
var arr1 = new Array(); //创建了一个空的数组
var arr2 = new Array(2); //里面的2表示数组的长度为2,输出结果我2个空的数组元素
var arr3 = new Array(2, 3); //等价于[2,3]表示里面有2个数组元素为2,3
检测是否为数组
(1)instanceof 运算符,用来检测是否为数组
var arr = [];
var obj = {};
console.log(arr instanceof Array); //true
console.log(obj instanceof Array); //false
(2)Array.isArray(参数);H5新增的方法,ie9以上版本支持
var arr = [];
var obj = {};
console.log(Array.isArray(arr)); //true
console.log(Array.isArray(obj)); //false
添加删除数组元素的方法
方法名 | 说明 | 返回值 |
push(参数1...) | 末尾添加一个或多个元素,注意修改原数组 | 返回新的长度 |
pop() | 删除数组最后一个元素,把数组长度减1 无参数、修改原数组 | 返回它删除的元素的值 |
unshift(参数1....) | 向数组的开头添加一个或更多元素,注意修改原数组 | 返回新的长度 |
shift() | 删除数组的第一个元素,数组长度减1,无参数、修改原数组 | 返回第一个元素的值 |
var arr = [1, 2, 3];
arr.unshift(4)
console.log(arr); //输出结果为4,1,2,3
console.log(arr.unshift('red', 'purple')); //输出结果为6
● unshif给数组前面追加新的元素
● unshift()参数直接写数组元素即可
● unshift完毕之后,返回的结果是新数组的长度
● 原数组也会发生变化
3、pop()可以删除数组的最后一个元素
var arr = [1, 2, 3, 4];
arr.pop();
console.log(arr); //输出结果为1,2,3
console.log(arr.pop()); //输出结果为3
● pop()删除数组的最后一个元素,注意:一次只能删除一个元素
● pop()没有参数
● pop()完毕之后,返回的结果是删除的那个元素
● 原数组也会发生变化
4、shift()删除数组的第一个元素
var arr = [1, 2, 3, 4];
arr.shift();
console.log(arr); //输出结果为2,3,4
console.log(arr.shift()); //输出结果为2
● shift()可以删除数组的第一个元素,一次只能删除一个元素
● shift()没有参数
● shift()完毕之后,返回的结果是删除的那个元素
● 原数组也会发生变化
小案例
数组去重
//数组去重
var arr = [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5];
var newArr = [];
for (var i = 0; i <= arr.length; i++) {
if (arr[i] != arr[i + 1]) {
newArr.push(arr[i])
}
}
console.log(newArr);
数组排序
方法名 | 说明 | 是否修改原数组 |
reverse() | 颠倒数组中元素的顺序,无参数 | 该方法会改变原来的数组,返回新数组 |
sort() | 对数组的元素进行排序 | 该方法会改变原来的数组,返回新数组 |
reverse翻转数组
<script>
var arr = [1, 2, 3, 4, 5, 6];
arr.reverse();
console.log(arr); //输出结果为6,5,4,3,2,1
</script>
sort()数组排序(冒泡排序)
<script>
var arr1 = [6, 9, 8, 7, 4, 2, 3, 6, 5, 4];
arr1.sort();
console.log(arr1); //输出结果[2, 3, 4, 4, 5, 6, 6, 7, 8, 9]
var arr2 = [13, 4, 77, 1, 7];
arr2.sort(function(a, b) {
return a - b; //升序的顺序排列
// return b - a; //降序的顺序排列
})
console.log(arr2);
</script>
数组索引方法
方法名 | 说明 | 返回值 |
indexOf() | 数组中查找给定元素的第一个索引 | 如果存在返回索引号,如果不存在,则返回-1 |
lastIndexOf() | 在数组中的最后一个的索引 | 如果存在则返回索引号,如不存在,则返回-1 |
var arr = ['red', 'green', 'blue', 'pink', 'blue']
console.log(arr.indexOf('blue')); //2
console.log(arr.lastIndexOf('blue')) //4
案例:数组去重
<script>
function unique(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i])
}
}
return newArr;
}
console.log(unique([1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6]));
</script>
数组转换为字符串
//tostring
var arr = [1, 2, 3]
console.log(arr.toString()); //输出结果为黑色1,2,3
//join(分隔符)
var arr1 = [1, 2, 3]
console.log(arr.join('-')) //输出结果为1-2-3