给你一段数据: const list1 = ['A镇1村','A镇2村','BB镇2村','BB镇3村','CCC镇1村','A镇10村'] ; 要求你用js得到这段数据: result = "'A镇1村','A镇2村','A镇10村'\n'BB镇2村','BB镇3村'\n'CCC镇1村'" ;
时间: 2023-08-06 20:12:48 浏览: 43
可以先将原始数据按照镇的名称进行分组,然后再将每个镇下面的村庄名称拼接成一个字符串,最终将所有镇的字符串拼接成一个结果字符串。代码如下:
```javascript
const list1 = ['A镇1村', 'A镇2村', 'BB镇2村', 'BB镇3村', 'CCC镇1村', 'A镇10村'];
// 将原始数据按照镇的名称进行分组
const groups = {};
list1.forEach(item => {
const [town, village] = item.split(/(?<=\D)(?=\d)/); // 使用正则表达式分割镇和村庄名称
if (!groups[town]) {
groups[town] = [];
}
groups[town].push(village);
});
// 将每个镇下面的村庄名称拼接成一个字符串
const townStrings = [];
for (const town in groups) {
const villages = groups[town];
const villageString = villages.map(v => `'${town}${v}'`).join(',');
townStrings.push(villageString);
}
// 将所有镇的字符串拼接成一个结果字符串
const result = townStrings.join('\n');
console.log(result); // 输出: "'A镇1村','A镇2村','A镇10村'\n'BB镇2村','BB镇3村'\n'CCC镇1村'"
```