返回

点石成金:两种 JavaScript 循环内数据提取之道

前端

在 JavaScript 中,循环是实现代码重用和简化的有效方式。然而,当您需要从循环中提取数据时,事情可能会变得有点棘手。我们经常需要在循环中对每个元素进行处理,或者将这些元素收集到一个新的数据结构中。

有两种主要的方法来提取循环内的数据:内部迭代和外部迭代。

内部迭代

内部迭代是使用循环本身来提取数据。这可以通过使用 for-of 循环或递归来实现。

for-of 循环是一种新的循环类型,它允许您轻松地遍历可迭代对象。以下是一个使用 for-of 循环从数组中提取数据的示例:

const numbers = [1, 2, 3, 4, 5];
const extractedNumbers = [];

for (const number of numbers) {
  extractedNumbers.push(number);
}

console.log(extractedNumbers); // [1, 2, 3, 4, 5]

递归是另一种提取循环内数据的方法。递归是一种函数调用自身的编程技术。以下是一个使用递归从数组中提取数据的示例:

const numbers = [1, 2, 3, 4, 5];
const extractedNumbers = [];

function extractNumbers(array) {
  if (array.length === 0) {
    return;
  }

  extractedNumbers.push(array[0]);
  extractNumbers(array.slice(1));
}

extractNumbers(numbers);

console.log(extractedNumbers); // [1, 2, 3, 4, 5]

外部迭代

外部迭代是使用另一个循环来提取数据。这可以通过使用 forEach() 方法或 map() 方法来实现。

forEach() 方法是一种用于遍历数组的函数。它接收一个回调函数作为参数,该回调函数将在数组的每个元素上执行。以下是一个使用 forEach() 方法从数组中提取数据的示例:

const numbers = [1, 2, 3, 4, 5];
const extractedNumbers = [];

numbers.forEach(function(number) {
  extractedNumbers.push(number);
});

console.log(extractedNumbers); // [1, 2, 3, 4, 5]

map() 方法也是一种用于遍历数组的函数。它接收一个回调函数作为参数,该回调函数将在数组的每个元素上执行。与 forEach() 方法不同的是,map() 方法将返回一个新的数组,其中包含了回调函数的返回值。以下是一个使用 map() 方法从数组中提取数据的示例:

const numbers = [1, 2, 3, 4, 5];
const extractedNumbers = numbers.map(function(number) {
  return number;
});

console.log(extractedNumbers); // [1, 2, 3, 4, 5]

结论

内部迭代和外部迭代都是提取循环内数据的好方法。哪种方法更适合您将取决于您的具体需求。如果您需要一个简单而直接的方法,那么内部迭代可能是更好的选择。如果您需要更多的灵活性,那么外部迭代可能是更好的选择。