【问题标题】:How to convert array of string to simple string in JavaScript?如何在 JavaScript 中将字符串数组转换为简单字符串?
【发布时间】:2019-05-27 14:19:26
【问题描述】:

我有以下 JavaScript 字符串数组:

arrayOfString = ['a', 'b,c', 'd,e', 'f'];

我想把这个数组转换成一个类似这样的数组:

myString = ["a", "b", "c", "d", "e", "f"];

我怎样才能做到这一点?

【问题讨论】:

  • 那么,您想将'b,c' 之类的项目拆分为'b', 'c'...?
  • @U25lYWt5IEJhc3RhcmQg 是什么原因先展开数组。为什么不arrayOfString.flatMap(item => item.split(',')
  • 请编辑您的问题或您的预期输出,因为其中一个您要求一个简单的字符串,而另一个您需要一个字符串数组。

标签: javascript arrays string


【解决方案1】:

mapsplitreduceconcat 一起使用:

const arrayOfString = ['a', 'b,c', 'd,e', 'f'];
const myString = arrayOfString.map(e => e.split(",")).reduce((acc, curr) => acc.concat(curr));
console.log(myString);

解释:

使用map遍历数组,然后split取出每个字母,然后使用reduceconcat等很好支持的方法将生成的多维数组展平,最后将结果赋值给myString.

【讨论】:

  • 我会添加一个解释@Stijn。
  • 有点矫枉过正,但赞成使用reduce/map
  • 我的坏@Cœur - 我不知道存在这样的拒绝选项。以后我会牢记这一点。
【解决方案2】:

使用join()split()

注意:join()的默认分隔符是comma (,)

const arrayOfString = ['a', 'b,c', 'd,e', 'f']

const myString = arrayOfString.join().split(',')

console.log(myString)

【讨论】:

  • 好兄弟。您无需将, 传递给join()。如果没有传递任何参数,它将通过, 加入。
  • @MaheerAli Good Catch
【解决方案3】:

您可以使用flatMap()split()

let arrayOfString = ['a', 'b,c', 'd,e','f'];
let res = arrayOfString.flatMap(x => x.split(','))
console.log(res)

如果您的浏览器不支持flatMap(),则使用map() concat() 和传播运算符。使用扩展运算符将map() 的结果传递给concat()

let arrayOfString = ['a', 'b,c', 'd,e','f'];
let res = [].concat(...arrayOfString.map(x => x.split(',')))
console.log(res)

【讨论】:

    【解决方案4】:

    您可以使用扩展运算符、映射和拆分

    let arr = [];
    let input =  ['a', 'b,c', 'd,e', 'f'];
    input.map(obj => arr = [...arr,...obj.split(",")])
    
    console.log(arr);

    【讨论】:

      猜你喜欢
      • 2015-11-11
      • 2022-11-29
      • 1970-01-01
      • 2022-01-23
      • 2012-06-01
      • 1970-01-01
      • 2017-10-18
      • 2021-12-13
      • 2015-10-26
      相关资源
      最近更新 更多