天下无坑

天下无坑


数组的实例回调方法

以下数组操作方法接收同样的参数
ArrayObject.CALLBACK(function(currentValue, index, thisArr), thisValue);
  • 都可以通过改变thisArr改变原数组

1.filter() 过滤

返回true,则原样返回的元素

  • 参数为回调函数
  • 不改变原数组
  • 返回新数组

filter() 方法返回数组中满足条件的元素组成的新数组,原数组不变

var a = [1,2,3,4,11]
// 第一个参数为一个方法,有三个参数,current:当前值 index:当前值下标 array:这个数组对象
var b = a.filter(function(current,index,array){
    return current < 10 //返回true或false
})

console.log(b) // [1,2,3,4]
console.log(a) // [1,2,3,4,11]

2.map() 格式化数组

将元素格式化后返回

  • 参数为回调函数
  • 不改变原数组
  • 返回新数组

map() 方法来根据需求格式化原数组,返回格式化后的数组。原数组不变

var a = [1,2,3,4,5]
// 参数同filter方法
var b = a.map(function(current,index,array){
    return current + 1 //返回格式化后的元素
})

console.log(b) // [2,3,4,5,6]
console.log(a) // [1,2,3,4,5]

3.every()

一假即返回假

  • 参数为回调函数
  • 不改变原数组
  • 返回true或false

 对数组的每一项都运行给定的函数,若每一项都返回 ture,则返回 true

    var a = [1,2,3,4,5]

    var b = a.every(function(current,index,array){
           return current < 6
    })

    var c = a.every(function(current,index,array){
           return current < 3
    })
    console.log(b)  // true 
    console.log(c)  // false 

4.some()

一真即返回真

  • 参数为回调函数
  • 不改变原数组
  • 返回true或false

对数组的每一项都运行给定的函数,若存在一项符合返回true, 全部不符合返回false

    var a = [1,2,3,4,5]

    var b = a.some(function(current,index,array){
           return current > 4
    })

    var c = a.some(function(current,index,array){
           return current > 5
    })
    console.log(b)  // true 
    console.log(c)  // false 

5.forEach()  数组遍历

  • 参数为回调函数
  • 不改变原数组
  • 返回true或false
  • 遍历整个数组,中途不能break或return
    var arr = ['a','b','c']
    var copy = []
    arr.forEach(function(item){
     copy.push(item);
    })
    console.log(copy)

6.find()

  • 参数为回调函数
  • 不改变原数组
  • 返回 undefined 或 符合条件的元素

当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。 如果没有符合条件的元素返回 undefined。 注意: find() 对于空数组,函数是不会执行的。 注意: find() 并没有改变数组的原始值。

var arr = ['a','b','c'];
var res = arr.find(function(item){
    return item=='b';
});
console.log(res);// b

7.findIndex()

  • 参数为回调函数
  • 不改变原数组
  • 返回 -1 或 符合条件的元素索引值

当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。如果没有符合条件的元素返回 -1 注意: findIndex() 对于空数组,函数是不会执行的。 注意: find() 并没有改变数组的原始值。

var arr = ['a','b','c'];
var res = arr.findIndex(function(item){
    return item=='b';
});
console.log(res);// 1

8.reduce()

实现上一元素与当前元素的计算

var arr = [1,2,3,4,5,6,7,8,9,10]

var res = arr.reduce(function(prev,current,index,array){
    return prev + current ;
})
console.log(res)  // 55;

页面列表

ITEM_HTML