hanlinjiang 发表于 2017-11-14 00:44:33

lua 两个table如何对比。

如 a = {"你", "是", "好", "人"}b = {"你", "是", "人"}

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

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

北大侠客行MUD,中国最好的MUD

hanlinjiang 发表于 2017-11-14 00:45:02

或者有其他思路也可以。

sansouci 发表于 2017-11-14 07:53:08

看programming in Lua
有例子
像你这种默认key的,两个for循环就行

suwuji 发表于 2017-11-14 20:39:42

两个集有很多情况的,不交,相交,包含。

nrm 发表于 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
页: [1]
查看完整版本: lua 两个table如何对比。