2014-04-17 2 views
0

내가 만든 두 테이블을 비교하려고합니다. 첫 번째 표는 항상 2 ~ 3 개의 항목이 새로 추가되었습니다.LUA 타임 스탬프로 두 테이블 비교

표는 다음과 같습니다 : 나는 사람들의 거대한 목록을 필터링하고있어

existingMTable = {} 
local mTable = {} 
local user = "me" 

local function setupTable() 
    local e = {} 

    for i = 0, #totalusers do 
     e.secSinceMyEvent = GetTimeSinceEvent(i) 
     e.timestamp = GetTimeStamp(i) 
     e.seller = GetUserNames(i) 

     of e.seller = "me" then 
     table.insert(mTable, e) 
     valueExists(mTable, e.timestamp) 
    end 
end 

local function valueExists(tbl, value) 

    for k,v in pairs(tbl) do 
     if value ~= v then 
      table.insert(existingMTable.History, value) 

      print("value" .. value) 
      print("v" .. v) 
      print(existingMTable.History.timestamp) 
     end 
    end 

    return false 
end 

, 난 단지 한 사용자의 항목을합니다. 몇 가지 항목을 갖게되면이를 판매 내역에 추가하려고합니다.

3 개 이상의 새로운 항목을 현재 테이블과 비교해야합니까? 나는 타임 스탬프를 믿는다.

+0

문제가있는 곳을 분명히 말하십시오. 테이블 (코드)을 어디에서 비교하려고합니까? 어떤 활력제? 실제 결과와 예상 결과는 무엇입니까? –

+0

유효한 코드를 붙여 넣을 수 있다면 좋을 것입니다. (예를 들어, 구문 오류에 관해 묻지 않을 때) ... 'of ... then', 예를 들어,'end'가 일치하지 않거나 누락 된 것일 수 있습니다. 좋은 들여 쓰기도 멋질 것입니다 ... – hyde

답변

1

valueExists에 대한 두 번째 매개 변수가 에서 "값"이되는 timestamp이되었지만이 함수에서 "e"유형 항목이기 때문에 무엇을하는지 이해가되지 않습니다.

  • 당신 : 이제 위의하지 않습니다 감각을 볼 수 있습니다

    local function valueExists(tbl, timestamp) 
    
        for k,e in ipairs(tbl) do 
         if timestamp ~= e.timestamp then 
          table.insert(existingMTable.History, e) 
    
          print("value" .. timestamp) 
          print("e.timestamp" .. e.timestamp) 
          #print(existingMTable.History.timestamp) -- WRONG because you inserted an e two lines above here 
         end 
        end 
    
        return false 
    end 
    

    : 나는 당신이 그것을 호출하고 일관성이 있도록 몇 가지 이름을 변경하는 방법에 따라 이름을 변경하는 경우, 당신은 같은 것을 할 것이다 "e"테이블을 타임 스탬프 값과 혼합합니다. 당신이 실제로 수행하려고 무엇 : valueExists가 검색 타임 스탬프

위를 살펴 보자를 가지고 테이블에서 마지막 항목을 찾을 수 있도록

  • 당신은, setupTable에 의해 추가 된 마지막 전자의 타임 스탬프와 함께 호출 그 valueExists 함수에서?

  • 관련 문제