如何将字符串转换为数组内的两个属性?

时间:2018-10-28 17:21:27

标签: javascript angular5

在这里,我正在将数组转换为所需的格式。 parsedValues的输出为[“ abcdefgh(4034343),Mikhail(900002)”]      和Iam尝试将其转换为[“ 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 :数组(0)

3 个答案:

答案 0 :(得分:1)

您可以在字符串上使用split,以从分隔符(在这种情况下为,)中获取数组。如果只有一个连接字符串,则可以...

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

获取新数组。

如果原始数组具有多个字符串,则需要连接所有数组...

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

答案 1 :(得分:0)

尝试一下

var input = ["abcdefgh(4034343), Mikhail(900002)"]

input.reduce(function(o,i){
    var values = i.split(',');
    if(values.length > 0){
        o = o.concat(values);
    }return o;},[]);

Output - ["abcdefgh(4034343)", " Mikhail(900002)"]

答案 2 :(得分:0)

const trimmedValues = parsedValues[0].split(', ');