给你一段数据: const list1 = ['河溜镇1assd村','河溜镇2村','二哈我镇2yt村','二哈我镇3gf村','你好来把镇1村','河溜镇10村'] ; 要求你用js得到这段数据: result = "'河溜镇1assd村','河溜镇2村','河溜镇10村'\n'二哈我镇2yt村','二哈我镇3gf村'\n'你好来把镇1村'" ;
时间: 2023-08-06 19:12:48 浏览: 60
可以按照以下步骤来实现:
1. 将数组按照“镇”进行分组,使用正则表达式提取出“镇”的名称作为分组依据。
2. 对于每个分组,将其内部的元素按照字典序排序。
3. 将每个分组内的元素拼接成一个字符串,每个元素之间用逗号隔开,整个分组内的字符串用单引号包裹。
4. 将所有分组的字符串拼接成一个字符串,每个分组之间用换行符隔开。
下面是具体的代码实现:
```javascript
const list1 = ['河溜镇1assd村','河溜镇2村','二哈我镇2yt村','二哈我镇3gf村','你好来把镇1村','河溜镇10村'];
// 将数组按照“镇”进行分组
const groups = {};
const regex = /(.*镇)/;
list1.forEach(item => {
const match = item.match(regex);
const town = match[1];
if (!groups[town]) {
groups[town] = [];
}
groups[town].push(item);
});
// 对于每个分组,将其内部的元素按照字典序排序
Object.keys(groups).forEach(key => {
groups[key].sort();
});
// 将每个分组内的元素拼接成一个字符串
const resultArr = Object.values(groups).map(group => {
const str = group.join(',');
return `'${str}'`;
});
// 将所有分组的字符串拼接成一个字符串
const result = resultArr.join('\n');
console.log(result); // "'河溜镇1assd村','河溜镇2村','河溜镇10村'\n'二哈我镇2yt村','二哈我镇3gf村'\n'你好来把镇1村'"
```