首页 > 解决方案 > 需要帮助在 Javascript 中创建 for 循环数组

问题描述

我是 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]

请注意,我希望第一个 const (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;

标签: javascriptnode.jsfor-loop

解决方案


我只是options根据您发布的代码完全猜测看起来像什么,但是这样的工作吗?

const options = {
    url: 'x.com',
    url2: 'y.com',
    url3: 'z.com',
    url4: 'aa.com',

    key: 'key'
}

function getUrl(num) {
    if (num === 1) return options.url;
    const key = `url${num}`;
    return options[key];
}

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

console.log(urlArray);

使用函数将迭代变量转换为对象中的正确键是一个不错的选择。


推荐阅读