我需要知道我是否可以让这个代码变得更好更快。
示例输入:
"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语法的魔力来构建您想要的结果array
:
function getParams(query) {
let [first, ...rest] = query.split(" ");
return [first, rest.join(" ")];
}
解释:
- 在以下代码中,
first
将保存CCD_ 5和CCD_ 6的结果CCD_CCD_ 7 - 然后我们返回一个包含
first
和其余array
的array
使用rest.join(" ")
作为string
加入以获得所需CCD_ 13字符串的原始剩余部分
演示:
let str = "hi my name is john cena";
function getParams(query) {
let [first, ...rest] = query.split(" ");
return [first, rest.join(" ")];
}
console.log(getParams(str));
Array.slice方法在这里非常有用。
function getParams(x) {
const index = x.indexOf(' ')
return [x.slice(0, index), x.slice(index + 1)]
}
var text = "hi my name is john cena";
function getParams(query) {
var idx = query.indexOf(' ');
return [ query.substr(0, idx), query.substr(idx + 1) ];
};
console.log(getParams(text));
希望这能帮助你
您可以简单地根据空白的第一次出现将字符串拆分为两部分:
let str = "hi my name is john cena";
let result = str.split(/s(.+)/);
result.pop()
console.log(result);