我需要知道我是否可以使这段代码更好更快。
示例输入:
"hi my name is john cena"
预期输出:
["hi", "my name is john cena"]
我的代码:
function getParams(query) {
var keys = query.split(' ');
var params = [];
if(keys.length >= 2) {
params.push(keys[0]);
params.push("");
for(var i = 1; i<=keys.length - 1; i++) {
if(i != keys.length - 1) {
params[1] += keys[i] + " ";
} else {
params[1] += keys[i];
}
}
}
return params;
}
最佳答案
你可以使用的魔法rest
/spread syntax ,构造你想要的结果 array
:
function getParams(query) {
let [first, ...rest] = query.split(" ");
return [first, rest.join(" ")];
}
解释:
- 在下面的代码中,
first
将保存第一个元素query.split("")
和rest
的结果array
将保存剩余的 它的词/元素
。 - 然后我们返回一个
array
,其中包含first
和其余的array
使用rest.join("")
作为string
加入以获得所需的query
字符串的原始剩余部分。
演示:
let str = "hi my name is john cena";
function getParams(query) {
let [first, ...rest] = query.split(" ");
return [first, rest.join(" ")];
}
console.log(getParams(str));
关于javascript - 获得第一个单词在位置 0 和其他单词在位置 1 的数组作为输出的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53651623/