Javascript 获取第一个单词位于位置0,其他单词位于位置1的数组作为输出的最佳方法?
我需要知道我是否可以使这个代码更好更快 输入示例:Javascript 获取第一个单词位于位置0,其他单词位于位置1的数组作为输出的最佳方法?,javascript,arrays,node.js,string,Javascript,Arrays,Node.js,String,我需要知道我是否可以使这个代码更好更快 输入示例: "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]); par
"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;
}
函数getParams(查询){
var keys=query.split(“”);
var参数=[];
如果(keys.length>=2){
参数推送(键[0]);
参数push(“”);
对于(var i=1;i
var text=“你好,我叫约翰·塞纳”;
函数getParams(查询){
var idx=query.indexOf(“”);
返回[query.substr(0,idx),query.substr(idx+1)];
};
console.log(getParams(text));
您可以根据第一次出现的空白将字符串分成两部分:
let str=“你好,我叫约翰·塞纳”;
让结果=str.split(/\s(+)/);
result.pop()
console.log(result);
您可以使用的魔力来构建所需的结果数组:
function getParams(query) {
let [first, ...rest] = query.split(" ");
return [first, rest.join(" ")];
}
说明:
- 在以下代码中,first
将保存来自
结果是查询的数组
。拆分(“”
和其余
将保留剩余的
它的单词/元素
然后我们返回一个数组
,其中包含第一个
,其余的数组
使用rest.join(“”)
以字符串的形式加入
查询
字符串的原始剩余部分
演示:
let str=“你好,我叫约翰·塞纳”;
函数getParams(查询){
let[first,…rest]=query.split(“”);
return[第一个,rest.join(“”)];
}
log(getParams(str));
该方法在这里非常有用
function getParams(x) {
const index = x.indexOf(' ')
return [x.slice(0, index), x.slice(index + 1)]
}
让[first,…others]=query.split(“”)
怎么样?所以你需要在hi之后进行拆分,这就是你所需要的。这样hi可以出现在字符串的任何地方,但你需要拆分它并将hi作为数组中的单独元素来获取?我喜欢这种方式!@AlessandroBertozzi很高兴你喜欢它;)split
然后join
不是最快的方法,但更有效readable@fanjabi当我们处理大量的单词时,它可能不会更快,但事实并非如此;)