【问题标题】:Alternately Join 2 strings - Javascript交替加入 2 个字符串 - Javascript
【发布时间】:2016-02-09 19:57:26
【问题描述】:

我有 2 个字符串,我需要构造以下结果(可能是 JSON):

indexLine: "id,first,last,email\n"

dataLine: "555,John,Doe,jd@gmail.com"

结果:“id:555,first:john,....;

交替连接这两个字符串的最快方法是什么?

我写了这个 - 但它似乎太直接了:

function convertToObject(indexLine, dataLine) { 
    var obj = {};
    var result = "";
    for (var j = 0; j < dataLine.length; j++) {
        obj[indexLine[j]] = dataLine[j]; /// add property to object   
    }
    return JSON.stringify(obj); //-> String format;
}

谢谢。

【问题讨论】:

  • 这是一种快速而正确的方法。任何更多的性能优化都需要向我们提供有关参数和调用频率等的更多信息。
  • “这似乎太直截了当”,嘿,如果你的代码是清晰的并且能完成它的工作,那么你将获得更多的权力!
  • 你有数据线和索引线是有原因的吗?您的 API 调用不能返回 JSON 格式吗?
  • 既然你有工作代码并且想知道它是否可以改进,也许codereview.stackexchange.com 会是一个更好的地方问。

标签: javascript


【解决方案1】:
var indexLine = "id,first,last,email";
var dataLine = "555,John,Doe,jd@gmail.com";

var indexes = indexLine.split(',');
var data = dataLine.split(',');

var result = [];

indexes.forEach(function (index, i) {
    result.push(index + ':' + data[i]);
});

console.log(result.join(',')); // Outputs: id:555,first:John,last:Doe,email:jd@gmail.com

【讨论】:

  • 在 Firefox 中似乎更快,但在 Chrome 中更慢:jsperf.com/arays-to-key-value(您的代码中进行了一些更改以匹配原始代码,即有效的 JSON 字符串)。
【解决方案2】:

如果您可能要创建多个对象实例,则可以使用此代码。

var newarray = [],
    thing;

for(var y = 0; y < rows.length; y++){
    thing = {};
    for(var i = 0; i < columns.length; i++){
        thing[columns[i]] = rows[y][i];
    }
    newarray.push(thing)
}

source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 2010-10-06
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多