如何创建从 17 到 120 的数组 [重复]
Posted
技术标签:
【中文标题】如何创建从 17 到 120 的数组 [重复]【英文标题】:how to create array from 17 to 120 [duplicate] 【发布时间】:2022-01-01 04:02:45 【问题描述】:从 17 号到 120 号创建数组的最快方法是什么?
[17,18,20,...,118,119,120]
我尝试使用 Array 方法,但它以 0 开头,并从某个 resson 中切出最后一个数字而不是第一个数字。
export const ARR_OF_AGES = Array(121).fill().slice(16).map((x, i) =>
return value: i, label: i
)
【问题讨论】:
一个简单的 for 循环就足够了 你有例子吗? 属于for
循环?
Array(121-17).fill().map((x, i) => return value: i+17, label: i+17 )
How much research effort is expected of Stack Overflow users?
【参考方案1】:
既然你要求“最快”,我建议在上面的 cmets 中使用 for
循环,我想我至少会给你一个简单的例子:
let ary = [];
for (let i = 17; i <= 120; i++)
ary.push(i);
运行一些simple performance tests 表明此方法比您接受的结果快一个数量级。所以,是的,快。并且易于理解。
【讨论】:
【参考方案2】:以下应该可以工作。
Array.from(length: 120 - 17 + 1, (_, i) => i + 17)
请参阅下面的工作示例:
const result = Array.from(length: 104, (_, i) => i + 17)
console.log(result)
【讨论】:
为了清楚起见,最好显示数学Array.from(length: 120-17+1, (_, i) => i + 17)
(并避免您刚刚修复的错误:))
为什么这值得回答? OP 实际上只需要一个 for
循环,它是所有讨论数组 o.O 的 JS 教程的一部分
或投票关闭重复:duckduckgo.com/…【参考方案3】:
如果您的数组以 17 开头并以 120 结尾,则表示它有 104 个元素。因此,在您的代码中将 121 更改为 104,而不是为您的元素赋予值“i”,而是赋予它们值“i+17”。这样,您的第 i 个元素将具有值 i+17,这意味着您的数组将从 17 开始
【讨论】:
不要忘记删除.slice(16)
。
如果一些代码能按照解释就好了:)
哦,是的,我没看到切片。 Tnx!
Array((120-17+1)/*104*/).fill().map((x, i) => return value: i + 17, label: i + 17 )
以上是关于如何创建从 17 到 120 的数组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章