1. 创建数组
// 1. 字面量创建
var arr1 = [1, 2, 3];
// 2.1 new Array()
var arr2 = new Array(3);
// 2.2 new Array(两个以上的值)
var arr3 = new Array(1, 2, 3);
console.log(arr1);
console.log(arr2);
console.log(arr3);
输出 :
2. 检测是否为数组
- instanceof
var arr1 = [1, 2, 3];
console.log(arr1 instanceof Array);
输出 :
- Array.isArray(数组)
var arr1 = [1, 2, 3];
console.log(Array.isArray(arr1));
输出 :
Array.isArray(参数)为H5新增的方法, IE9以上才支持
3. 添加, 删除数组
4. 数组排序
var arr = [1, 3, 2];
// 1. 翻转数组
console.log(arr.reverse());
// 2. 冒泡排序
console.log(arr.sort());
输出 :
5. 元素索引
6. 数组去重
思路一 :
let arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
let newArr = [];
// 记录原数组的长度
let arrLength = arr.length;
for (let i = 0; i < arrLength; i++) {
// 缓存数组第一个元素
let temp = arr[0];
// 删除数组第一个元素
arr.shift();
// 判断新数组是否有重复, 无则添加
if(arr.indexOf(temp) == -1) {
newArr.push(temp);
}
}
console.log(newArr);
- 创建一个用来保存的数组, 并且由于原数组的长度删除后会变换, 先对原数组的原始长度进行保存
- 进入循环, 用temp记录下数组第一个元素
- 删除数组第一个元素
- 判断新数组是否有重复, 有则进入下一次循环, 无则push()方法添加上去新的数组
思路二(较简单) :
let arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
let newArr = [];
for (let i = 0; i < arr.length; i++) {
//判断新数组有无原数组的第i个元素, 无则添加
if(newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i]);
}
}
console.log(newArr);
- 第一次循环, 由于是第一个元素, 肯定没有重复元素, 那么直接push()
- 第二次循环, a与之前的都不重复, 则也是push()
- ...
7. 数组转字符串
let arr = ['c', 'a', 'z'];
console.log(arr.toString());
// 无参数时默认','
console.log(arr.join());
console.log(arr.join('-'));
输出 :