如何创建从 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) =&gt; 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) =&gt; return value: i + 17, label: i + 17 )

以上是关于如何创建从 17 到 120 的数组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用LOOPS从字符串创建各种数组

数组索引超出界限项目欧拉问题17

从数组列表中删除重复项

在reactjs中删除重复项后如何从状态值和setstate创建数组

如何从返回字符数的字符串创建字典[重复]

文本到字符串数组并删除重复项