JavaScript 数组

检测数组

Array.isArray([])   // true
Array.isArray({})   // false
Array.isArray('')   // false复制代码


经常使用方法

// 如下方法均改变原始数组
push() 方法能够接收任意数量的参数,并将它们逐个添加到数组末尾
pop()  方法从数组末尾移除最后一项

unshift() 方法能够在数组前端添加任意数量的参数
shift()   方法可以移除数组中的第一项

reverse() 方法会反转数组的顺序
sort()    方法在默认状况下按升序排列数组项

splice()  方法可对数组进行 删除 插入 替换

// 如下方法不影响原始数组
slice()   方法可以基于当前数组中的一或多个项建立一个新的数组

join()    方法将数组中全部元素转换成字符串并链接在一块儿  

indexOf() 方法在整个数组中搜索指定的元素

concat()  方法能够基于当前数组中的全部项建立一个新的数组复制代码


迭代方法

every()   若是该函数对每一项都返回true,则返回true
filter()  返回该函数会返回true的项组成的数组
forEach() 这个方法没有返回值
map()     返回每次函数调用的结果组成的数组
some()    若是改函数的任一项返回true,则返回true复制代码


归并方法

reduce() reduceRight() 主要取决于从哪头开始遍历,除此以外,他们彻底相同。
复制代码


1. 数组排序

// 升序
function compare(val1, val2) {
    if(val1 < val2) {
        return -1
    }else if(val1 > val2) {
        return 1
    }else {
        return 0
    }
}

var values = [1, 3, 2, 6, 5]
values.sort(compare)
console.log(values) // 1, 2, 3, 5, 6

// 降序
function compare(val1, val2) {
    if(val1 < val2) {
        return 1
    }else if(val1 > val2) {
        return -1
    }else {
        return 0
    }
}

var values = [1, 3, 2, 6, 5]
values.sort(compare)
console.log(values) // 6, 5, 3, 2, 1

// 升序
function compare(val1, val2) {
    return val1 - val2
}

// 降序
function compare(val1, val2) {
    return val2 - val1
}
复制代码


2. 数组去重

var values = [...new Set([6, 5, 3, 5, 7, '8', 8, 6])]

console.log(values) // [6, 5, 3, 7, '8', 8]复制代码


3. 获取数组最大值

var values = [3, 1, 5, 8, 6]
var maxVal = Math.max(...values)

console.log(maxVal) // 8复制代码


4. 让一个数组乱序

var values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
values.sort(function() {
    return Math.random() - 0.5
})

console.log(values)复制代码


5. 拷贝数组

// 方法一
var values = [1, 2, 3, 4, 5]
var copyValues = values.slice(0)

// 方法二
var values = [1, 2, 3, 4, 5]
var copyValues = values.concat()复制代码
相关文章
相关标签/搜索