让tagsUnparsed
是类似于"a b c d+e+f"
的字符串。我需要一个数组应该是:
["a", "b", "c", "d", "e", "f"]
在Typescript中,我尝试过:
let tags: string[] = tagsUnparsed.split(' ');
tags = tags.map((tag: string) => {
return tag.split('+')
});
我收到此错误:
Type 'string[][]' is not assignable to type 'string[]'.
Type 'string[]' is not assignable to type 'string'.ts(2322)
我看不到string[][]
的来源。 .map
返回一个数组,不确定为什么会有类型定义错误。
答案 0 :(得分:3)
split返回一个数组,使map在这里返回一个数组。您可以简单地使用flatMap
代替map
,也可以在flat()
之后附加map
。
答案 1 :(得分:2)
您可以使用RegExp(空格或加号)作为分隔符:
const tagsUnparsed = "a b c d+e+f"
tagsUnparsed.split(/[ +]/) // ["a", "b", "c", "d", "e", "f"]
错误是因为您有space
个分离的字符串数组,然后将每个字符串除以+
,所以您有一个字符串数组或数组:
["a", "b", "c", "d+e+f"]
["a", "b", "c", ["d", "e", "f"]]