需要在Javascript中创建for循环数组的帮助吗

需要在Javascript中创建for循环数组的帮助吗,javascript,node.js,for-loop,Javascript,Node.js,For Loop,我是Javascript和Node.js的新手,目前正在尝试编写一个for循环,我被卡住了 const url1 = options.url ? `https://www.icanhazdadjoke.com?url=https://${escape(options.url)}&key=${escape(options.key)}` : ""; const url2 = options.url ? `https://www.icanhazdadjoke.com?url

我是Javascript和Node.js的新手,目前正在尝试编写一个for循环,我被卡住了

const url1 = options.url ? `https://www.icanhazdadjoke.com?url=https://${escape(options.url)}&key=${escape(options.key)}` : "";
const url2 = options.url ? `https://www.icanhazdadjoke.com?url=https://${escape(options.url2)}&key=${escape(options.key)}` : "";
const url3 = options.url ? `https://www.icanhazdadjoke.com?url=https://${escape(options.url3)}&key=${escape(options.key)}` : "";
const url4 = options.url ? `https://www.icanhazdadjoke.com?url=https://${escape(options.url4)}&key=${escape(options.key)}` : "";

const arr = [url1, url2, url3, url4]
上面的代码是我目前正在运行的代码,工作正常,但我正在尝试将其转换为一个循环,如下所示

const urlArray = [];
for (i = 1, i < 4; i++;) {
    const url(i) = options.url ? `https://www.icanhazdadjoke.com?url=https://${escape(options.url(i))}&key=${escape(options.key)}` : "";
}

const arr = [url1, url2, url3, url4]
consturlarray=[];
对于(i=1,i<4;i++;){
常量url(i)=options.url`https://www.icanhazdadjoke.com?url=https://${escape(options.url(i))}&key=${escape(options.key)}`:“”;
}
常量arr=[url1、url2、url3、url4]
请注意,我希望第一个常量(url1)具有options.url而不是options.url1,因为它会进一步中断代码并返回错误。如果您有任何建议或解决方案,请告诉我

此外,我将在这里留下选项,以防它对找出循环至关重要。它使用yargs构建选项,使用axios与API交互。需要注意的是,这些选项是空白的,因为我正在构建一个CLI,它接受用户的多个输入,然后将这些输入插入到URL的不同迭代中并一起运行

const options = yargs
    .usage("Usage: -u <url>")
    .option("u", { alias: "url", describe: type: "string", demandOption: true })
    .option("s", { alias: "url2", describe: type: "string", demandOption: true })
    .option("d", { alias: "url3", type: "string", demandOption: true })
    .option("f", { alias: "url4", type: "string", demandOption: true })
    .option("k", { alias: "key", type: "string", demandOption: true })
    .argv;
const options=yargs
.用法(“用法:-u”)
.option(“u”{别名:“url”,描述:type:“string”,demandOption:true})
.option(“s”,{别名:“url2”,描述:type:“string”,demandOption:true})
.option(“d”,{别名:“url3”,类型:“string”,demandOption:true})
.option(“f”,{别名:“url4”,类型:“string”,demandOption:true})
.option(“k”,{alias:“key”,type:“string”,demandOption:true})
.argv;

根据您发布的代码,我完全在猜测
选项
是什么样子的,但是这样做行吗

const选项={
url:'x.com',
url2:'y.com',
url3:'z.com',
url4:'aa.com',
钥匙:“钥匙”
}
函数getUrl(num){
如果(num==1)返回options.url;
const key=`url${num}`;
返回选项[键];
}
常量URLARY=[];

对于(让i=1;i我用@Chris G的评论来回答这个问题


试图用一个循环替换那些硬编码的四行意味着您特别不使用像url1这样的变量

const arr = [1, 2, 3, 4].filter(key => !!options["url" + key]).map(key => `https://www.icanhazdadjoke.com?url=https://${escape(options["url" + key])}&key=${escape(options.key)}`);

如果您发布了
const options
的实际值,这样想帮助您的人就不必知道什么是
yargs.usage()…
确实如此。您希望第一个url是
url
而不是
url1
?这是您不愿意更改的吗?尝试用循环替换那些硬编码的四行意味着您特别不使用像
url1
这样的变量。您所做的是
const arr=[1,2,3,4]。过滤器(键=>!!选项[“url”+键]).map(键=>`https://www.icanhazdadjoke.com?url=https://${escape(options[“url”+key])}&key=${escape(options.key)}`)
谢谢你们的帮助和评论,我想第一个url可以更改为url1,但是我在将更改实现到当前版本时遇到了问题。另外,我没有提供选项的价值,因为这是一个CLI应用程序版本,它接受用户的输入并将其实现到${escape(options.url)}和${escape中(options.key)}参数。谢谢你的回答!我没有使用这个答案,因为克里斯格提供的一行代码对我来说非常有用,但非常感谢你的帮助。@lovecroatzia我希望你至少投了更高的票。这是一个更好的答案,实际上是一个答案而不是一个评论。@AustinFrench我没有足够的声誉去投更高的票,但我非常赞同感谢他们两人的帮助