Hi eveyone,
i make a small application with using table object , but unfortanotly it gave wrong .
this is the code :
local widget = require( "widget" ) local json = require("json") local group = display.newGroup() local btnstable = {} local page = 1 local token = "Z7Tj-iJ6EtNSd2WDnQiqTAXgKQAIVXf9hgEH1NnBv\_4GWzUFW7MloCYrZ3\_Y6N84pmPztfcTrZkKu0JHm-HcIBlSABi54HZw4-2E73xgJwMkUtuO34h8fkGI7A1ImqGbtEJT2UTdtmDT1tOpxBpc9eDzzqCRRq1TZR6rH2uMPc97AyqWQ3s\_mHiNLmhZ705U4Cr\_iaZRKgtwDKugTcvM5eokrXalr36aBEYNGd43CgWgSj1rnWXRr9G5Hxn3Tudg9X0IyCVgm6jYa8GiquKRwgf\_X7octzaj8Ho4jHi\_IlqSvnAHIWxL4oy0cfaLtSC\_jmJILPF5c541CDEZJIZUaw8pofjpUDScDzxzHeVw45HT-JLC7ASAsBfNbB2DYAUlpGNKHb44KCFRd6gYZoohX\_CrySQHX6onY7nIXD9hI6aRWeLuF3rWb01HdCGdfJkauqImbC-k-VgjdtQIl619KGYSOnpAu5WtPovGmsX3XBySE5ny0HhD-lXFYfSbimGc" gid = 1 json1= [[{"stlst":[{"sid":6,"name":"a","lvl":2,"dcount":0},{"sid":7,"name":"b","lvl":2,"dcount":0},{"sid":8,"name":"c","lvl":1,"dcount":0},{"sid":9,"name":"d","lvl":1,"dcount":0},{"sid":10,"name":"e","lvl":1,"dcount":0},{"sid":11,"name":"f","lvl":1,"dcount":0},{"sid":12,"name":"g","lvl":1,"dcount":0},{"sid":13,"name":"h","lvl":3,"dcount":0},{"sid":14,"name":"j","lvl":1,"dcount":0},{"sid":17,"name":"k","lvl":1,"dcount":0},{"sid":18,"name":"l","lvl":1,"dcount":0},{"sid":19,"name":"m","lvl":1,"dcount":0},{"sid":20,"name":"n","lvl":1,"dcount":0},{"sid":21,"name":"o","lvl":1,"dcount":0},{"sid":22,"name":"p","lvl":2,"dcount":0}]}]] json2= [[{"stlst":[{"sid":23,"name":"q","lvl":3,"dcount":0},{"sid":24,"name":"r","lvl":1,"dcount":0},{"sid":2,"name":"s","lvl":1,"dcount":1},{"sid":4,"name":"t","lvl":1,"dcount":1},{"sid":5,"name":"u","lvl":1,"dcount":1},{"sid":1,"name":"v","lvl":1,"dcount":1}]} ]] display.setDefault( "background", 1, 1, 1 ) local function rbtnEvent( event ) if ( "ended" == event.phase ) then local data if ( event.target.id == "btn1" ) then data = json.decode(json1) elseif ( event.target.id == "btn2" ) then data = json.decode(json2) end for key,value in pairs(btnstable) do print("before " ..key) end for v in pairs(data["stlst"]) do if(btnstable[data["stlst"][v]["sid"]] == null) then print("add x "..data["stlst"][v]["sid"]) table.insert( btnstable, data["stlst"][v]["sid"],{ isdbefore = 0 , stat = false } ) end if(btnstable[data["stlst"][v]["sid"]] == null) then print("add z "..data["stlst"][v]["sid"]) table.insert( btnstable, data["stlst"][v]["sid"],{ isdbefore = 1 , stat = false } ) end end for key,value in pairs(btnstable) do print("after " ..key) end end end local btn1 = widget.newButton { id = "btn1", width = 35, height = 35, label = "btn1", onEvent = rbtnEvent } btn1.x = display.contentCenterX + 90 btn1.y = display.contentCenterY +140 group:insert( btn1 ) local btn2 = widget.newButton { id = "btn2", width = 35, height = 35, label = "btn2", onEvent = rbtnEvent } btn2.x = display.contentCenterX - 90 btn2.y = display.contentCenterY +140 group:insert( btn2 )
when i press the btn1
it shows
thats good.
but when i press btn2
is shows
as u can see it should add the keys ( 23 , 24 ,2,4,5,1) to the prevous records
but it gave me additional records for example keys ( 25 ,26,3,15,16) as it shown before
please help me becuse its serious issue
many thanks