输入描述:
n行每行输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
比如:
输入:
0 1
0 2
1 2
3 4
复制
输出:
0 3
1 2
3 4
代码示例:
let arr = []
while(line = await readline()){
let lineArr = line.split(' ')
arr.push({index:lineArr[0],value:lineArr[1]})
}
// 1、把所有的index值提取出来
var indexs = arr.map(function(item){
return item.index
})
// 2、indexs去重
var newIndexs = Array.from(new Set(indexs))
let newArr = []
newIndexs.map(function(item){
// 3、把元素组里面等于提取出来的index相等的对象放到一个数组
let subArr = arr.filter(function(sitem){
return sitem.index == item
})
//4、把提起出来的小数组里面的value值加起来,用的reduce,注意后面有个total的初始值0
let sum = subArr.reduce(function(total,titem){
return total+parseInt(titem.value)
},0)
newArr.push(item+' '+sum)
})
//5、排序,这里是根据数组中部分元素排序
newArr.sort(function(a,b){
return a.split(' ')[0]-b.split(' ')[0]
})
newArr.map(function(item,index){
console.log(item)
})