数组一些新方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组一些新方法相关的知识,希望对你有一定的参考价值。

1、Array.prototype.forEach()

 

forEach() 方法让数组的每一项都执行一次给定的函数。

语法:

array.forEach(callback[, thisArg])

参数

callback
在数组每一项上执行的函数,接收三个参数:
   currentValue
 当前项(指遍历时正在被处理那个数组项)的值。
  index
  当前项的索引(或下标)。
  array
  数组本身。
thisArg
可选参数。用来当作callback 函数内this的值的对象。

示例

var arr = [1,2,3];

arr.forEach(function(item, index, array){ 
    console.log(item);
});

 

2、Array.prototype.map()

 

map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。

语法:

array.map(callback[, thisArg])

参数

callback
原数组中的元素经过该方法后返回一个新的元素。
 currentValue
callback 的第一个参数,数组中当前被传递的元素。
 index
callback 的第二个参数,数组中当前被传递的元素的索引。
 array
callback 的第三个参数,调用 map 方法的数组。
thisArg
执行 callback 函数时 this 指向的对象。
var arr = [1,2,3];
var newArr = arr.map(function(item, index, array){ 
    return item+1;
});

console.log(newArr); //[2,3,4]
console.log(arr); //[1,2,3]

 

3、Array.prototype.reduce()

 

reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值。

语法:

arr.reduce(callback,[initialValue])

参数

callback
执行数组中每个值的函数,包含四个参数
  previousValue
上一次调用回调返回的值,或者是提供的初始值(initialValue)
  currentValue
数组中当前被处理的元素
  index
当前元素在数组中的索引
  array
调用 reduce 的数组
initialValue
作为第一次调用 callback 的第一个参数。

回调函数第一次执行时,previousValue 和 currentValue 可以是一个值,如果 initialValue 在调用 reduce 时被提供,那么第一个 previousValue 等于 initialValue ,并且currentValue 等于数组中的第一个值;

如果initialValue 未被提供,那么previousValue 等于数组中的第一个值,currentValue等于数组中的第二个值。

[1,2,3,4].reduce(function(prev, cur, index, array){              
  console.log(prev+‘=‘+cur);
  return prev+ cur;
});

   结果:

  1=2

  3=3

  6=4

  10

[1,2,3,4].reduce(function(prev, cur, index, array){              
  console.log(prev+‘=‘+cur);
  return prev+ cur;
}, 10);

结果:

  10=1

  11=2

  13=3

  16=4

  20

4、Array.prototype.every()

every() 方法测试数组的所有元素是否都通过了指定函数的测试。不会改变原数组。

语法:

arr.every(callback[, thisArg])

参数

callback
用来测试每个元素的函数。
thisArg
执行 callback 时使用的 this 值。
var arr = [1,2,3,6];
arr.every(function(item, index, array){ 
    return item <5;
}); // false

5、Array.prototype.indexOf()

indexOf()方法返回给定元素能找在数组中找到的第一个索引值,否则返回-1。

语法

arr.indexOf(searchElement[, fromIndex = 0])

参数

searchElement
要查找的元素
fromIndex
开始查找的位置。如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回-1。如果参数中提供的索引值是一个负值,则将其作为数组末尾的一个抵消,即-1表示从最后一个元素开始查找,-2表示从倒数第二个元素开始查找 ,以此类推。 注意:如果参数中提供的索引值是一个负值,仍然从前向后查询数组。如果抵消后的索引值仍小于0,则整个数组都将会被查询。其默认值为0.

以上是关于数组一些新方法的主要内容,如果未能解决你的问题,请参考以下文章

几个关于js数组方法reduce的经典片段

VSCode自定义代码片段10—— 数组的响应式方法

为什么我不能在此片段中生成唯一对象数组?

sublime新代码段

如何在Sublime Text中添加代码片段

从外部片段内的 FragmentTabHost 的子片段添加新的选项菜单