HJ8 合并表记录
描述
数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。
提示:
0 <= index <= 11111111
1 <= value <= 100000
输入描述:
先输入键值对的个数n(1 <= n <= 500)
接下来n行每行输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
示例1
输入:
4
0 1
0 2
1 2
3 4
输出:
0 3
1 2
3 4
分析
- 创建一个空的对象来接收键值对
- 把传入的字符串通过空格切割,变成一个数组
- 分别用k , v 来存放数组的两项数据 k = arr[0] v = arr[1]
- 判断数组的键名是否相同,相同则值相加,不同则存储相应的v
代码
let obj = {}
while((str = readline())){
const arr = str.split(' ')
const k = +arr[0]
const v = +arr[1]
if(v) {
// 如果键名重复,则键值相加
if(obj[k]) {
obj[k] += v
} else {
// 没有相同的键名,就存储这个键值
obj[k] = v
}
}
}
// 遍历obj对象,输出键值对的值
for(key in obj) {
console.log(key + ' ' + obj[key])
}

浙公网安备 33010602011771号