首页 新闻 会员 周边 捐助

JS 字符串去重

0
悬赏园豆:20 [已解决问题] 解决于 2016-07-25 21:23

有如下字符串:4:1,2:3,3:5,4:3,要求不管是冒号前面还是后面的数字都各只能出现一次,如果有重复,只保留最前面的。上面的字符串4在冒号前面出现了2次就只取前面的,结果为:4:1,2:3,3:5

例 :

4:1,2:3,3:5,4:3   =====》  4:1,2:3,3:5

4:1,2:3,5:3,4:2   =====》  4:1,2:3

4:1,2:4,3:5,4:3   =====》  4:1,2:4,3:5

求方法。

DZCMS的主页 DZCMS | 初学一级 | 园豆:5
提问于:2016-07-23 16:22
< >
分享
最佳答案
0
function test(str) {
  var _map = {},
      _arr = [],
      entries = str.split(','),
      entry = null,
      entryKV = null,
      entryK = null,
      entryV = null
  for(var i = 0, len = entries.length; i < len; i ++) {
      entry = entries[i]
      entryKV = entry.split(':')
      entryK = 'k' + entryKV[0]
      entryV = 'v' + entryKV[1]
      if (!_map[entryK] && !_map[entryV]) {
          _arr.push(entry)
      }
      _map[entryK] = true
      _map[entryV] = true
  }
  console.log(_arr.join(','))
}
test('4:1,2:3,3:5,4:3')
test('4:1,2:3,5:3,4:2')
test('4:1,2:4,3:5,4:3')


输出

4:1,2:3,3:5
4:1,2:3
4:1,2:4,3:5

 

收获园豆:20
之奇一昂 | 小虾三级 |园豆:1421 | 2016-07-24 14:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册