数组

var arr = [];
for (var i = 0; i < arr.length; i++) {
    console.log(arr[i]); // 遍历数组
    arr[i] = i +1; // 追加元素
}

冒泡排序:

var arr = [5, 4, 3, 2, 1];
for (var i = 0; i < arr.length - 1; i++) {
    for (var j = 0; j < arr.length - i - 1; j++) {
        if (arr[j] > arr[j + 1]) {
            var temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
        }
    }
}
console.log(arr);

Array对象

是构造函数,需使用new

创建数组

1.利用数组字面量var arr = []

2.利用内置对象构造函数

var arr1 = new Array(); // 创建了一个空数组
var arr2 = new Array(2); // 创建了长度为2的空数组
var arr3 = new Array(2, 3); // 等价于[2, 3]
检测是否为数组

1.instanceof运算符

2.方法Array.isArray(参数)H5新增

var arr = [];
console.log(arr instanceof Array);
console.log(Array.isArray(arr));
添加删除数组元素

push():在数组末尾添加一或多个数组元素,返回值是新数组长度 unshift():在数组开头添加一或多个数组元素,返回值是新数组长度 pop():删除数组最后一个元素,数组长度减1,返回被删除元素的值 shift():删除数组第一个元素,数组长度减1,返回被删除元素的值

var arr = [1, 2, 3];
arr.push(4, 5);
console.log(arr.push()); // 5
console.log(arr); // [1, 2, 3, 4, 5]
arr.unshift(6, 7);
console.log(arr.unshift()); // 7
console.log(arr); // [6, 7, 1, 2, 3, 4, 5]
console.log(arr.pop()); // 5
console.log(arr); // [6, 7, 1, 2, 3, 4]
console.log(arr.shift()); // 6
console.log(arr); // [7, 1, 2, 3, 4]
数组排序

reverse():翻转数组元素顺序,返回新数组

var arr = [1, 2, 3];
arr.reverse();
console.log(arr); // [3, 2, 1]

sort():对数组元素排序,返回新数组

var arr1 = [13, 4, 77, 1, 7]
arr1.sort(); // 字典序[1, 13, 4, 7, 77]
arr1.sort(function(a,b) {
    return a - b; // 升序
    // return b - a; 降序
}
数组索引

indexOf():查找给定元素的第一个索引 lastIndexOf():查找最后一个索引

如果存在返回索引号,如果不存在返回-1

数组去重
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;
}
数组转换为字符串

toString():用逗号分隔,返回一个字符串 join('分隔符'):用自定义分隔符分隔,返回一个字符串

连接或截取数组

concat():连接二或多个数组,不影响原数组,返回新数组 slice(begin, end):数组截取,返回被截取项目的新数组 splice(第几个开始,要删除个数):删除,影响原数组,返回被删除项目的新数组(重点)