📅  最后修改于: 2023-12-03 15:07:11.102000             🧑  作者: Mango
在 JavaScript 中,列表理解提供了一种简洁的方式来生成、筛选、转换数组。
可以使用列表理解来快速生成数组。
const nums = [1, 2, 3, 4, 5];
const squaredNums = [num ** 2 for (num of nums)];
console.log(squaredNums); // [1, 4, 9, 16, 25]
[num ** 2 for (num of nums)]
创建了一个新的数组,其中每个元素都是原始 nums
数组中的元素的平方。
列表理解还允许您在创建新数组时过滤一些元素。
const nums = [1, 2, 3, 4, 5];
const evenNums = [num for (num of nums) if (num % 2 === 0)];
console.log(evenNums); // [2, 4]
[num for (num of nums) if (num % 2 === 0)]
创建了一个新数组,其中只包含原始数组中的偶数。
您还可以利用列表理解来转换数组的元素。
const words = ['foo', 'bar', 'baz'];
const capitalizedWords = [word.toUpperCase() for (word of words)];
console.log(capitalizedWords); // ['FOO', 'BAR', 'BAZ']
[word.toUpperCase() for (word of words)]
创建了一个新的数组,其中每个元素都是原始数组中的元素大写后的结果。
您可以在一个列表理解中包含多个 for 循环。
const colors = ['red', 'green', 'blue'];
const combos = [[color1, color2] for (color1 of colors) for (color2 of colors) if (color1 !== color2)];
console.log(combos); // [['red', 'green'], ['red', 'blue'], ['green', 'red'], ['green', 'blue'], ['blue', 'red'], ['blue', 'green']]
[[color1, color2] for (color1 of colors) for (color2 of colors) if (color1 !== color2)]
创建了一个新数组,它包含颜色数组中的两两组合。但是,由于我们不能包括相同的颜色,因此我们在遍历数组时添加了一个条件,跳过由相同颜色形成的组合。
列表理解是一种强大且灵活的工具,可使您以一种简洁的方式生成新的数组、筛选和转换现有数组的元素。它对于编写简化代码的小型程序以及在大型项目中处理数据结构特别有用。