Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取第一个单词位于位置0,其他单词位于位置1的数组作为输出的最佳方法?_Javascript_Arrays_Node.js_String - Fatal编程技术网

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当我们处理大量的单词时,它可能不会更快,但事实并非如此;)