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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章