在 JavaScript 中创建具有范围值的数组
程序员经常需要创建包含一系列值的数组。一种常见的方法涉及一个循环,该循环迭代地将每个元素添加到数组中。然而,有没有一种更简洁、更高效、不使用循环的方法呢?
在 ES6 中,JavaScript 引入了两个关键方法来解决这个问题:Array.from() 和 keys()。使用 Array.from(),可以将可迭代对象转换为数组。 keys() 方法返回给定对象的键的迭代器。结合这些方法,可以实现一系列值的数组创建。
使用Array.from()和keys()的解决方案
Array.from(Array(10).keys()) // Result: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
上述方法利用 Array(n) 创建一个长度为 n 的数组,最初用未定义的值填充的事实。通过在此数组上使用keys(),我们获得了数组键的可迭代对象,它对应于所需的数字范围。然后 Array.from() 将此迭代转换为数组。
带有扩展运算符的较短版本
[...Array(10).keys()] // Result: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
扩展运算符 (...) 允许您将可迭代对象展开为其各个元素。因此,先前解决方案的较短版本使用展开运算符来实现相同的结果。
从 1 开始
要从 1 而不是 0 开始范围,你可以将map()函数与Array.from()一起使用:
Array.from({length: 10}, (_, i) => i + 1) // Result: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
map()函数转换每个元素可迭代的。这里,每个元素都是从原始数组传递来的值,由占位符 _ 表示,及其对应的索引,由 i 表示。转换将索引加 1,从 1 开始。然后将结果传递给 Array.from() 以创建最终数组。
以上是如何在 JavaScript 中高效创建具有范围值的数组?的详细内容。更多信息请关注PHP中文网其他相关文章!