首页 > 解决方案 > 如何将字符串转换为数组内的两个属性?

问题描述

在这里,我正在将数组转换为所需的格式。parsedValues 的输出是 ["abcdefgh(4034343), Mikhail(900002)"] 并且我试图将其转换为 ["abcdefgh(4034343)","Mikhail(900002)"]

如何将 ["abcdefgh(4034343), Mikhail(900002)"] 转换为 ["abcdefgh(4034343)","Mikhail(900002)"] ?

private transformUser(userIdsString: any): string[] {
  const parsedUserIdsArray = userIdsString;
  console.log(parsedUserIdsArray);
  const parsedValues = parsedUserIdsArray[4].userids;
  console.log(parsedValues);
  const splitValues = parsedValues.split(',');
  console.log(splitValues);
  const trimmedValues = splitValues.map(str => str.trim());
  console.log(trimmedValues);
  return trimmedValues;
}

The console.log(trimmedValues) is 

(2) ["["abcdefgh(4034343)", "Mikhail(900002)"]"]
0: "["abcdefgh(4034343)"
1: "Mikhail(900002)"]"
length: 2
__proto__: Array(0)

预期为:(2)[“abcdefgh(4034343)”,“Mikhail(900002)”] 0:“abcdefgh(4034343)”1:“Mikhail(900002)”长度:2 proto:Array(0)

标签: javascriptangular5

解决方案


您可以split在字符串上使用,从分隔符中获取数组(,在本例中)。如果你只有一个连接的字符串,你可以做......

["abcdefgh(4034343), Mikhail(900002), Someone(12934)"][0].split(', ')

获取新数组。

如果原始数组有多个字符串,则需要加入所有数组...

["abcdefgh(4034343), Mikhail(900002)", "Someone(12934)"]
.map(item => item.split(', '))
.reduce( (acc, item) => [...acc, ...item], [])

推荐阅读