【问题标题】:Merge objects in array using Javascript使用Javascript合并数组中的对象
【发布时间】:2016-11-19 14:51:12
【问题描述】:

第一篇文章,刚接触编程,很高兴学习!

问题: 如何将所有对象(字符串)合并到一个数组中?

前:

var myStrings = ["How", "", "do", "", "I", "", "merge", "", "these?"]

Desired result = ["How do I merge these?"]

我的研究: 我试过.join('') 但这给出了:

Not desired result = How,,do,,I,,merge,,these?

感谢您帮助新手!

【问题讨论】:

  • Merge objects in array 仅供参考,它们被称为strings 而不是objects下面没有答案说明
  • myStrings.reduce(function(a, x){return (a + " " + x).trim(); }, "")

标签: javascript merge javascript-objects


【解决方案1】:

你可以这样做,

var myStrings = ["How", "", "do", "", "I", "", "merge", "", "these?"];
var result = [myStrings.join(" ").replace(/\s\s/g, " ")];
console.log(result); // ["How do I merge these?"]

尝试join 数组按我上面给出的单个空格。并用单个空格替换双空格。必须这样做,因为您的数组中有空字符串。

【讨论】:

    【解决方案2】:

    您可以使用 Array#filter 过滤真实值(例如非空字符串)

    value    Boolean
    'abc' -> true
    ''    -> false
    

    并加入' '。然后把它作为一个新数组的元素。

    var myStrings = ["How", "", "do", "", "I", "", "merge", "", "these?"],
        result = [myStrings.filter(function (a) { return a; }).join(' ')];
    
    console.log(result);

    【讨论】:

    • 可能值得解释一下 "" 强制转换为 false
    【解决方案3】:
    var myStrings = ["How", "", "do", "", "I", "", "merge", "", "these?"]
    
    myStrings.join('').split(',,').join(' ');
    

    【讨论】:

      【解决方案4】:

      您可以使用.forEach() 来迭代数组,如果项目不是空字符串,则将项目连接到新字符串,否则将空格字符" " 连接到新字符串。

      var res = [""];
      myStrings.forEach(function(str) {res[0] += str !== "" ? str : " ";});
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-07
        • 2019-12-02
        • 1970-01-01
        • 2011-04-04
        • 1970-01-01
        • 1970-01-01
        • 2018-09-14
        • 1970-01-01
        相关资源
        最近更新 更多