关闭

quick3x_保证下标顺序排列,删除table中的元素

322人阅读 评论(0) 收藏 举报
这里的重点是要求该数组删除数据后依然保持key的连续性且始终是从1开始的

这样也可以保证 ipairs()的正确性 等等)

第一种方法:

<pre name="code" class="cpp" style="line-height: 18px;"><span style="font-size: 18px;">function MainScene:ctor()
 	local a = {
 		[1] = 1,
 		[2] = 2,
 		[3] = 3, 
 		[4] = 4,
 		[5] = 5,
 		[6] = 7,
 		[7] = 4, 
 		[8] = 4,
 		[9] = 4,

 	}	
 	local b = {}
 	for k,v in pairs(a) do
 		if v == 4 then
 			table.insert(b, k)
 		end
 	end
 	table.sort( b ,function( d,e)
		return d>e
	end)
 	for k,v in pairs(b) do
 		table.remove(a,v)
 	end

end</span>


第二种方法:

function MainScene:ctor()
 	local a = {
 		[1] = 1,
 		[2] = 2,
 		[3] = 3, 
 		[4] = 4,
 		[5] = 5,
 		[6] = 7,
 		[7] = 4, 
 		[8] = 4,
 		[9] = 4,

 	}	
 	for k,v in pairs(a) do
 		if v == 4 then
 			-- table.insert(b, k)
 			a[k] = nil
 		end
 	end
 	dump(a)
end


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14163次
    • 积分:417
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:8篇
    • 译文:0篇
    • 评论:0条