搜索
查看: 1411|回复: 4

如何删除table表中的null元素

[复制链接]

2

主题

22

帖子

126

积分

一级会员

Rank: 2

积分
126
发表于 2016-8-29 17:53:21 | 显示全部楼层 |阅读模式
先看一段代码:

  1. import console;
  2. vv = {["A"]=11;null;["B"]=22;null}
  3. k0=table.pop(vv)
  4. k1=table.count(vv)
  5. kvv = table.tostring(vv)
  6. console.dump(k1);//虽然k1显示为2,有两个有效元素
  7. console.dump(k0);//但pop弹出为null
  8. console.dump(kvv);//{A=11;B=22}
  9. console.pause(true);
复制代码

我想直接pop弹出B,因为我不知道有键B,所以需要先将表中的null元素清除,怎么做?
回复

使用道具 举报

42

主题

128

帖子

927

积分

荣誉会员

Rank: 8Rank: 8

积分
927
发表于 2016-8-29 19:35:57 | 显示全部楼层

table.pop是操作数组的,不是操作字典

table.pop是操作数组的,不是操作字典
回复

使用道具 举报

2

主题

22

帖子

126

积分

一级会员

Rank: 2

积分
126
 楼主| 发表于 2016-8-29 20:51:57 | 显示全部楼层

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=72056&ptid=13349][c

cad 发表于 2016-8-29 19:35
table.pop是操作数组的,不是操作字典

上面的表不是字典,而是字典与数组的混合。
在这种情况下,怎么达到我要的要求?
回复

使用道具 举报

42

主题

128

帖子

927

积分

荣誉会员

Rank: 8Rank: 8

积分
927
发表于 2016-8-29 23:16:05 | 显示全部楼层

for k,v in tab { var b = v; tab[k] = null; }

for k,v in tab {
      var b = v;
      tab[k] = null;
}
回复

使用道具 举报

2

主题

22

帖子

126

积分

一级会员

Rank: 2

积分
126
 楼主| 发表于 2016-8-30 10:41:36 | 显示全部楼层

终于明白了: 1、table.pop()只能用于数组; 2、但凡有一个数组值,就会被弹出; 3、所以原问题中的null不是我一开始理解的null,即被po

终于明白了:
1、table.pop()只能用于数组;
2、但凡有一个数组值,就会被弹出;
3、所以原问题中的null不是我一开始理解的null,即被pop弹出的null不是vv中的null,而仅是一个新null,告诉程序,当前vv中没有数组。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-15 17:49 , Processed in 0.062500 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表