【问题标题】:How to combine array within another array using javascript or jquery?如何使用 javascript 或 jquery 在另一个数组中组合数组?
【发布时间】:2018-07-31 12:49:26
【问题描述】:

我有一个名为 arr 的数组,在该数组中,我还有另一个数组。我的问题是,如何组合这两个数组?

 var arr=["1","2","[3,4]","5"]

我的输出应该是这样的:

  1,2,3,4,5  

提前致谢!

【问题讨论】:

  • 输出是什么?数组?如果支持flatMap,那么arr.flatMap((subArray) => JSON.parse(subArray)) 将工作并产生[1, 2, 3, 4, 5]
  • @Xufox 只需要打印值
  • 请通过更正您的数组中有一个字符串或您有一个实际数组来编辑帖子。

标签: javascript jquery arrays


【解决方案1】:

您可以将扩展语法 ...mapJSON.parse 方法一起使用。

var arr = ["1","2","[3,4]","5"]
var result = [].concat(...arr.map(e => JSON.parse(e)))
console.log(...result)

【讨论】:

    【解决方案2】:

    考虑到你有一个实际的数组而不是一个字符串,你可以像这样展平

    var arr=["1","2",["3","4"],"5"]
    var flat = [].concat(...arr)
    console.log(flat)

    【讨论】:

    • 但他们确实有一个字符串"[3,4]",而不是["3", "4"]
    • @Xufox "我有一个名为 arr 的数组,在该数组中,我还有另一个数组"
    【解决方案3】:

    您可以将其更改为字符串并使用replace(/[\[|\]]/g,'')进一步替换方括号:

    var arr=["1","2","[3,4]","5"];
    var res = arr.toString().replace(/[\[|\]]/g,'');
    console.log(res);

    【讨论】:

      【解决方案4】:

      如果问题是如何将[1,2,[3,4],5][1,[2,[[3,4],5]]] 之类的数组扁平化为 this[ 1, 2, 3, 4, 5 ],这是一个非常通用且简短的解决方案:

      var arr = [1, [2, [[3, 4], 5]]];
      
      var newArr = JSON.parse("[" + JSON.stringify(arr).replace(/\[|\]/g, "") + "]");
      
      console.log(newArr)

      或者.flat,如果浏览器支持的话:

      var arr = [1, 2, [3, 4, [5, 6]]];
      arr.flat();
      console.log(arr)
      

      【讨论】:

        猜你喜欢
        • 2013-09-24
        • 2020-10-08
        • 1970-01-01
        • 1970-01-01
        • 2023-02-07
        • 2014-04-04
        • 1970-01-01
        • 2023-03-14
        • 2015-10-21
        相关资源
        最近更新 更多