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()複製代碼
相關文章
相關標籤/搜索