javascript - 获得第一个单词在位置 0 和其他单词在位置 1 的数组作为输出的最佳方法?

标签 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]);
        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/

相关文章:

javascript - 延迟作业后的回调方法 - 渲染 js 警报

arrays - 求另外两个数与第三个数的加减运算可组成的数组元素个数

Node.js + mongodb 还是 mongojs?

javascript - 我可以将 Javascript 中的变量传递给 child_process.exec 命令吗?

javascript - Vue.js 中的国际化使用 vue-i18n 从 API 服务器获取 JSON 对象

javascript - 使用外部托管脚本和本地托管脚本之间是否存在速度差异?

c - Malloc 结构体数组

arrays - Fortran 函数返回数组时的最佳实践是什么?

node.js - (JWT) RSA加密/解密问题

javascript - 诗乃js AssertError : expected stub to be called once but was called 0 times