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

转载 2015年07月10日 19:03:09
这里的重点是要求该数组删除数据后依然保持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


PHP删除数组中指定下标的元素

1、前面有讲数组作为堆栈和队列时的删除元素操作,即按顺序有规律的进行删除。那么,如果需要从数组的中间位置删除某个元素该如何操作呢?就需要我们今天要讲的unset()函数了。 2、unset()函数允...
  • joyksk
  • joyksk
  • 2017年06月20日 13:19
  • 3070

lua 学习小记 table下标

local a = {x = 10,"qqt",y = 20} print(table.getn(a))      输出为1 t​able.getn返回值为最后一个值的下标,应该也要是数字。 a...
  • tylerpiece
  • tylerpiece
  • 2016年10月10日 11:49
  • 1443

js通过指定下标或指定元素进行删除数组

删除指定下标数组元素 Array.prototype.del=function(index){ if(isNaN(index)||index>=this.length){ ...
  • du_peiduo
  • du_peiduo
  • 2014年01月15日 16:36
  • 5819

js数组依据下标删除元素

1、创建数组 var array = new Array(); var array = new Array(size);//指定数组的长度 var array = new Array(item1...
  • qaz13177_58_
  • qaz13177_58_
  • 2014年05月10日 17:23
  • 11773

指定下标删除 vector 中的元素

vectorV;V.erase(&V[i]);      // 删除下标为 i 的元素
  • zgl_dm
  • zgl_dm
  • 2007年11月20日 09:30
  • 3177

jquery删除某数组某几个下标的元素

//删除       //indexList下标数组       //white_list:数组       var offSet = 0;       $.each(indexList, f...
  • qietingfengdeyanse
  • qietingfengdeyanse
  • 2015年08月11日 10:04
  • 809

删除vector指定下标的元素

//删除vector中指定下标的元素,加&可以改变vector的值,不加就不会改变 void ControlCards::deleteCard(vector &cards,int index) { ...
  • pql925
  • pql925
  • 2016年07月08日 16:12
  • 653

在vector中通过下标删除元素

要删除单个元素,你应该这样做: std::vector vec; vec.push_back(6); vec.push_back(-17); vec.push_back(12); // 删除第二个...
  • wusecaiyun
  • wusecaiyun
  • 2015年07月09日 12:44
  • 2422

perl语言小技巧之按下标删除数组元素

perl 里面删除数组元素有 delete, 但delete删除后只是相应元素置为undef,实际上也有其他对数组进行操作的接口,如push,pop,shift,unshit,但它们只对数组的开头进行...
  • xxm524
  • xxm524
  • 2016年01月28日 21:04
  • 2149

js移除数组中元素-- 倒着遍历数组,绕过改变下标的问题

题目描述 移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回 示例1 输入[1, 2, 2, 3, 4, 2, 2], 2 输出[1, 3...
  • github_36487770
  • github_36487770
  • 2017年08月31日 17:06
  • 483
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:quick3x_保证下标顺序排列,删除table中的元素
举报原因:
原因补充:

(最多只允许输入30个字)