返回

数组常考方法(forEach,map,reduce,filter)及面试技巧

前端

数组方法经常被面试官考到。为了避免答案七零八落,总结了常考数组常考的forEach,map,reduce,filter。

forEach()

forEach() 方法对数组中的每个元素执行给定的函数。

语法:

arr.forEach(function(element, index, array) {
  // 对每个元素执行的操作
});

参数:

  • element:当前正在处理的元素。
  • index:当前元素在数组中的索引。
  • array:数组本身。

示例:

const arr = [1, 2, 3, 4, 5];

arr.forEach(function(element) {
  console.log(element);
});

输出:

1
2
3
4
5

map()

map() 方法创建一个新数组,其中每个元素是通过对原始数组中的每个元素应用给定函数的结果。

语法:

arr.map(function(element, index, array) {
  // 对每个元素执行的操作
});

参数:

  • element:当前正在处理的元素。
  • index:当前元素在数组中的索引。
  • array:数组本身。

示例:

const arr = [1, 2, 3, 4, 5];

const newArr = arr.map(function(element) {
  return element * 2;
});

console.log(newArr);

输出:

[2, 4, 6, 8, 10]

reduce()

reduce() 方法将数组中的所有元素缩减为一个单一值。

语法:

arr.reduce(function(accumulator, element, index, array) {
  // 对每个元素执行的操作
  return accumulator;
});

参数:

  • accumulator:累加器,用于保存缩减的结果。
  • element:当前正在处理的元素。
  • index:当前元素在数组中的索引。
  • array:数组本身。

示例:

const arr = [1, 2, 3, 4, 5];

const sum = arr.reduce(function(accumulator, element) {
  return accumulator + element;
}, 0);

console.log(sum);

输出:

15

filter()

filter() 方法创建一个新数组,其中包含通过给定函数测试的原始数组的所有元素。

语法:

arr.filter(function(element, index, array) {
  // 对每个元素执行的操作
  return true;
});

参数:

  • element:当前正在处理的元素。
  • index:当前元素在数组中的索引。
  • array:数组本身。

示例:

const arr = [1, 2, 3, 4, 5];

const evenArr = arr.filter(function(element) {
  return element % 2 === 0;
});

console.log(evenArr);

输出:

[2, 4]

面试技巧

  • 准备充分: 在面试前,一定要对数组方法有充分的了解。这包括它们的语法、参数和返回值。
  • 理解面试官的问题: 在回答面试官的问题时,一定要理解他们问的是什么。如果不明确,可以要求他们澄清。
  • 给出详细的答案: 在回答面试官的问题时,一定要给出详细的答案。这包括解释数组方法的语法、参数和返回值。
  • 使用示例: 在回答面试官的问题时,可以使用示例来说明数组方法的用法。这将帮助面试官更好地理解您的答案。
  • 保持自信: 在面试中,一定要保持自信。这将给面试官留下良好的印象。