返回
点石成金:两种 JavaScript 循环内数据提取之道
前端
2023-10-05 19:58:17
在 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]
结论
内部迭代和外部迭代都是提取循环内数据的好方法。哪种方法更适合您将取决于您的具体需求。如果您需要一个简单而直接的方法,那么内部迭代可能是更好的选择。如果您需要更多的灵活性,那么外部迭代可能是更好的选择。