【问题标题】:How can i set the length of output from "for loop" in javascript ? based from the input, not how many times loop will execute如何在 javascript 中设置 \"for loop\" 的输出长度?基于输入,而不是循环将执行多少次
【发布时间】:2023-02-22 06:30:55
【问题描述】:

在这种情况下,我想使用“for 循环”显示用户输入的输出长度。

let value = []

const getTotalDisp = (input) => {
    for(let i=1; i<input; i++){
        if(i%2===0){
            value.push(i)
        }
    }
    return value
}

console.log(getTotalDisp (10))

这将是显示:

[2,4,6,8]

我期望输出显示是如果用户输入 10,则输出长度必须是十个数字,例如:

[2,4,6,8,10,12,14,16,18,20]

我应该如何设置它的条件?我试图在“for 循环”之前添加一些条件,如下所示:

let value = []

const getTotalDisp = (input) => {
  if(value.length<input){
    for(let i=1; i<input; i++){
        if(i%2===0){
            value.push(i)
        }
    }
    return value
  }
}

console.log(getTotalDisp (10))

但它不起作用。任何人都可以帮我解决这个问题吗?谢谢。

【问题讨论】:

  • 比较不一定是i?使用长度。 for(let i=1; value.length&lt;input; i++){

标签: javascript for-loop


【解决方案1】:

设置循环条件为value.length &lt; input

const getTotalDisp = (input) => {
  const value = [];
  for (let i = 1; value.length < input; i++)
    if (i % 2 === 0) value.push(i);
  return value
}
console.log(getTotalDisp(10));

当然,在这种情况下,如果有一定数量的偶数,就很容易计算出实际停在的数量。

const getTotalDisp = (input) => {
  const value = [];
  for (let i = 1; i <= input; i++) value.push(i * 2);
  return value;
}
console.log(getTotalDisp(10));

或者,使用Array#map

const getTotalDisp = input => [...Array(input)].map((_, i) => (i + 1) * 2);
console.log(getTotalDisp(10));

【讨论】:

    猜你喜欢
    • 2020-07-24
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 2013-07-25
    相关资源
    最近更新 更多