Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
870 views
in Technique[技术] by (71.8m points)

数组处理的问题?["896,911", "896,900", "793,796,801", "793,815"] 分组归类

?["896,911", "896,900", "793,796,801", "793,815"]
我想把这样的数组处理成
["896,911,900","793,796,801,815"]
就是把字符串第一个相同的合并成一个字符串放到数组中


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
function trans(arr) {
   const map = arr.reduce((map, str) => {
      const [key, ...restPart] = str.split(',');
      if(!map[key]) {
        map[key] = str;
      } else if(restPart.length) {
        map[key] = map[key].concat(',', restPart.join(','))
      }
      return map;
   }, {})  

   return Object.values(map);
}

// ["793,796,801,815", "896,911,900"]
trans(["896,911", "896,900", "793,796,801", "793,815"])

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...