【发布时间】:2019-04-16 22:32:40
【问题描述】:
我试图在 JavaScript 中定义一个 let,如果没有 arg[2],那么它将只使用 arg[1],但如果有 arg[1] 和 arg[2],它将同时使用它们。
ie. command: !hello world
then: let cmd = arg[1]
还有
command: !hello world one
then: let cmd = arg[1] + " " + arg[2]
我有这个,但是它只在arg[2] 存在时才有效,并且在只提供arg[1] 时无效:
let cmd = args[1] + " " + args[2];
无论如何你可以指定一个 arg 来通过空格吗?所以 !hello world one, 将是 arg[1] arg[2] (arg[2]being: world one)
【问题讨论】:
-
您似乎在问两个非常不同的问题:(1)如何处理可选的第二个参数和(2)如何传递包含空格的参数。目前尚不清楚您是否将第二个问题作为处理第一个问题的一种方式,或者它是否是一个单独的问题。第一个问题可以用三元表达式处理:
let cmd = arg[2] === undefined ? arg[1] + " " + arg[2] : arg[1];。 -
let cmd = args.join(" ");如果你不介意他们可能提供更多两个参数就足够了。 -
谢谢。 @TedHopp,我将如何处理第二个,其中 args[3] 将包含从 args[3] 及以后的所有内容?
-
您可以使用@Tyler 建议的内容并使用
args.slice(3).join(" ")之类的内容收集所有剩余参数(这将创建一个包含arg的所有元素的单个字符串,从索引3 开始,用空格分隔) .
标签: javascript let