一个非常简单的js数组排序问题

代码大萝卜 2018-03-14 02:41:02
假设我现在有数组
var s = ["1:A","2:B","2:C","2:D","3:B","3:D"];
我要通过过滤实现:
["1:A","2:B,C,D","3:B,D"]
这样的数组。

规则:数组的前缀重复,就去重,后缀加到一起去
比如2:B,2:C,2:D改成2:B,C,D

规则应该很明确,请我各位大虾 怎么在前段用js实现呢?
不用js也可以,Java的话怎么实现呢?请各位大佬大神不吝赐教,谢谢
...全文
450 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码大萝卜 2018-03-14
  • 打赏
  • 举报
回复
感谢楼上两位大佬,爱你们(づ ̄3 ̄)づ╭❤~
心随念 2018-03-14
  • 打赏
  • 举报
回复
java方法:
public static void main(String[] args) {
String[] array = {"1:A","2:B","2:C","2:D","3:B","3:D"};
Map<String, Object> map = new HashMap<>();
for(String str : array){
String[] arr_str = str.split(":");
if(map.containsKey(arr_str[0])){
String value = map.get(arr_str[0]).toString();
value = value +"," + arr_str[1];
map.put(arr_str[0], value);
}else{
map.put(arr_str[0], arr_str[1]);
}
}
System.out.println(map.toString());
}


结果:
liuPeng_0930 2018-03-14
  • 打赏
  • 举报
回复
java版的 代码比较粗糙 js也一样 变量改成var就行了 public static void main(String[] args) { String datas[] = {"1:A","2:B","2:C","2:D","3:B","3:D"}; Set<String> nums = new HashSet<String>(); for(String data:datas){ String num = data.split(":")[0]; nums.add(num); } String[] cha = new String[nums.size()]; int i = 0; for(String num:nums){ StringBuffer sb = new StringBuffer(); for(String data: datas){ if(data.contains(num)){ sb.append( data.split(":")[1] + ","); } } cha[i] = num + ":" +sb.toString(); i++; } for(String s:cha){ System.out.println(s); } }

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧