我正在尝试使用 Array.reduce()
将下面这个字符串:
'React, {PureComponent, Fragment}'
转换成如下数组:
['React', 'PureComponent', 'Fragment']
为了实现这个目标,我使用了递归的 Array.reduce()
方法,代码如下:
const str = 'React, {PureComponent, Fragment}';
const moduleFinder = (acc, curr) => {
if (curr.charAt(0) === '{') {
const insideStr = curr.substring(curr.indexOf("{")+1, curr.indexOf("}"));
const insideModules = insideStr.split(',').map(e => e.trim());
return acc.concat(insideModules.reduce(moduleFinder, []));
} else {
acc.push(curr);
return acc;
}
}
console.log(str.split(',').map(e => e.trim()).reduce(moduleFinder, []));
然而,我一直收到Maximum call stack exceeded
的错误提示!
我做错了什么?
let results = str.match(/[a-z]+/gi);
? - ibrahim mahrir