ES5 Array新增的API

forEach 遍歷

調用數組中每一次參數並且傳遞給回調函數

let arr = [{
    name: 'Tom',
    age: 20
}, {
    name: 'Tony',
    age: 22
}, {
    name: 'Mary',
    age: 18
}]

arr.forEach(function(ele, index, arr) {
    console.log(ele, index, arr)
},)

// {name: "Tom", age: 20}  0 (3) [{…}, {…}, {…}]
// {name: "Tony", age: 22} 1 (3) [{…}, {…}, {…}]
// {name: "Mary", age: 18} 2 (3) [{…}, {…}, {…}]
參數 描述
ele 遍歷當前的元素
index 遍歷元素的索引
arr 遍歷的數組
Array.forEach(callback,this)

Array 的第二個參數代表着 callback 函數中的 this ,如果沒有第二個參數,則執行 window

<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>
arr.forEach(function(ele, index, self) {
    this[index].innerHTML = ele.name;
}, document.getElementsByTagName("li"))

// <li>Tom</li>
// <li>Tony</li>
// <li>Mary</li>

filter 過濾

filter 過濾並且返回符合條件的新數組。

let arr = [{
    name: 'Tom',
    age: 20
}, {
    name: 'Tony',
    age: 22
}, {
    name: 'Mary',
    age: 18
}]

let nowarr = arr.filter(function(ele, index, arr) {
    if (ele.age == 18) {
        return true
    }
})
console.log(nowarr)
// [{name: 'Mary', age: 18}]
Array.forEach(callback,this)

forEach 一樣,如果填寫了第二的參數代表着 callback 函數中的 this

map 修改

修改 Array 中的值。

let arr = [{
    name: 'Tom',
    age: 20
}, {
    name: 'Tony',
    age: 22
}, {
    name: 'Mary',
    age: 18
}]

let nowarr = arr.map(function(ele, index, arr) {
    ele.age = 20;
    return ele
})

console.log(nowarr)

// {name: "Tom", age: 20}
// {name: "Tony", age: 20}
// {name: "Mary", age: 20}

第二個參數也代表着 callback 函數中的 this

every 判斷所有元素是否符合條件

let arr = [{
    name: 'Tom',
    age: 20
}, {
    name: 'Tony',
    age: 22
}, {
    name: 'Mary',
    age: 18
}]

var flag = arr.every(function(ele, index, arr) {
    return ele.age > 16;
})
console.log(flag)

// true

some 判斷是否有元素符合條件

let arr = [{
    name: 'Tom',
    age: 20
}, {
    name: 'Tony',
    age: 22
}, {
    name: 'Mary',
    age: 18
}]

var flag = arr.some(function(ele, index, arr) {
    return ele.age > 20;
})
console.log(flag)

// true

reduce 累加器

callback(prevValue, ele, index, arr) 第一個參數代表着上一次記錄的值,也可以通過 arr.reduce(callback, arr) 設置 prevValue 的默認值。

const arr = [1, 2, 3]
const sum = arr.reduce(function(prevValue, ele, index, arr) {
    return ele + prevValue;
})

// sum => 6
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章