北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 7082|回复: 4

lua 两个table如何对比。

[复制链接]
发表于 2017-11-14 00:44:33 | 显示全部楼层 |阅读模式
如 a = {"你", "是", "好", "人"}  b = {"你", "是", "人"}

如何可以对比两个数组 并且明确的知道b 想对比 a 少了个“是”

如果是b比a少两个元素 又应该如何知道少的是什么

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2017-11-14 00:45:02 | 显示全部楼层
或者有其他思路也可以。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-11-14 07:53:08 | 显示全部楼层
看programming in Lua
有例子
像你这种默认key的,两个for循环就行
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-11-14 20:39:42 | 显示全部楼层
两个集有很多情况的,不交,相交,包含。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-11-15 08:59:53 | 显示全部楼层
本例只适用于table元素为字符串的形式:
function simTableIndex(str,list) -----比较table中元素是否包含str
  for i,value in pairs(list)  do
    if (value==str) then
      return i
    end
  end
  return -1
end

function table_is_contain(father_list,child_list)
----说明:比较两个表是否fathter_list包含child_list。
        local result=-1
        for i,value in pairs(child_list) do

                        result=simTableIndex(value,father_list)
                        -----print("result2 ",result)
                        if result==-1 then return false end

        end
                return true
end

function table_is_equal(list1,list2)
----说明:比较两个表是否相等。
        local result=-1
        for i,value in pairs(list1) do

                        result=simTableIndex(value,list2)
                        ----print("result1 ",result)
                        if result==-1 then return false end

        end
        ----------------------
        for i,value in pairs(list2) do

                        result=simTableIndex(value,list1)
                        -----print("result2 ",result)
                        if result==-1 then return false end

        end

                return true

        ---------------------------
end
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-6-11 11:50 PM , Processed in 0.016508 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表