table1 = {{"小鱼",1},{"熊猫",2},{"大象",1},{"老虎",1}}
table2 = {{"小鱼",2},{"老虎",5}}
for _,a in pairs(table1) do
for _,b in pairs(table2) do
if a[1] == b[1] then
a[2] = a[2] + b[2]
end
end
end
for _,v in pairs(table1) do
for _,j in pairs(v) do
print(j)
end
end
运行结果:
小鱼
3
熊猫
2
大象
1
老虎
6
==这样写不是很严谨,因为如果表2出现表1没有的动物,就不会加进去
修改后的写法
table1 = {{"小鱼",1},{"熊猫",2},{"大象",1},{"老虎",1}}
table2 = {{"小鱼",2},{"老虎",5},{"老蛇",3},{"老猪",4}}
for _,a in pairs(table1) do
for i,b in pairs(table2) do
if a[1] == b[1] then
a[2] = a[2] + b[2]
table2[i] = nil
end
end
end
if table2 ~= nil then
for i = 1,#table2 do
table1[#table1+i] = table2[i]
end
end
for _,v in pairs(table1) do
for _,j in pairs(v) do
print(j)
end
end
运行结果
小鱼
3
熊猫
2
大象
1
老虎
6
老蛇
3
老猪
4
这么写也不算严谨,因为如果表一或表二有重复的动物就会有错误,再换一种思路,就是先把两张表合并,再处理重复数据
table2 = {{"小鱼",2},{"老虎",5}}
for _,a in pairs(table1) do
for _,b in pairs(table2) do
if a[1] == b[1] then
a[2] = a[2] + b[2]
end
end
end
for _,v in pairs(table1) do
for _,j in pairs(v) do
print(j)
end
end
运行结果:
小鱼
3
熊猫
2
大象
1
老虎
6
==这样写不是很严谨,因为如果表2出现表1没有的动物,就不会加进去
修改后的写法
table1 = {{"小鱼",1},{"熊猫",2},{"大象",1},{"老虎",1}}
table2 = {{"小鱼",2},{"老虎",5},{"老蛇",3},{"老猪",4}}
for _,a in pairs(table1) do
for i,b in pairs(table2) do
if a[1] == b[1] then
a[2] = a[2] + b[2]
table2[i] = nil
end
end
end
if table2 ~= nil then
for i = 1,#table2 do
table1[#table1+i] = table2[i]
end
end
for _,v in pairs(table1) do
for _,j in pairs(v) do
print(j)
end
end
运行结果
小鱼
3
熊猫
2
大象
1
老虎
6
老蛇
3
老猪
4
这么写也不算严谨,因为如果表一或表二有重复的动物就会有错误,再换一种思路,就是先把两张表合并,再处理重复数据