TC官方合作论坛

标题: 关于数组的删除和追加 [打印本页]

作者: 似此星辰非昨夜    时间: 2015-12-16 01:35
标题: 关于数组的删除和追加
本帖最后由 似此星辰非昨夜 于 2015-12-16 01:41 编辑

刚刚接触TC,发现TC里面取数组的值,不是按照下标引用,而是“键名“”。
一般情况下,初始化一个数组,如果不填写键名,会按照顺序 默认 0="" ,1="",2=""的顺序默认“键名”。但是,我如果删除了一个数组中的内容再追加就会出现 1="",0="",2=""类似的情况。

若此时我使用 测试数组[w]来获取值时(w为for循环里的值),那么会依次获取到数组中第2个内容 数组中第1个内容 数组中第3个内容

而不是我想要的数组中第1个内容 数组中第2个内容 数组中第3个内容

请问大家都是怎么解决的?或者数组命令里有其他参数可以强制数组是按照下标而不是键名的?求帮忙!

另外多维数组如何利用循环赋值?为什么我用 测试数组[x][y]=""的格式会提示测试数组[x][y]不是数组?

这个问题只是附带问一下,我主要是想解决第一个问题。谢谢了!

作者: 574221329    时间: 2015-12-16 07:39
字太多,,,,为什么我用 测试数组[x][y]=""的格式会提示测试数组[x][y]不是数组?
要先定义变量   测试数组[x][y]
作者: 言术    时间: 2015-12-16 09:39

tc现在不支持  测试数组[x][y]  这样声明了
其中x必须是确定值,例如x是2的话,可以这样声明:
变量 测试数组=数组(数组(),数组())

变量 测试数组=数组()
测试数组[0]=数组()
测试数组[1]=数组()
至于键值之类的情况,我写了两个函数,你可以参考一下
刚写出来,还没测试,对于一些错误没做判断.只是提供了大致思路


功能 数组指定位置删除2(&数组名,位置)
    变量 大小=数组大小(数组名)
    变量 值,下标,标记=假
   
    遍历(变量 i = 0; i < 大小; i++)
        数组获取元素(数组名,i,值,下标)
        如果(!是否整型(下标))
            返回 假   
        结束
        
        如果(i==位置)
            标记=真
        结束
        
        如果(标记)
            数组名[i-1]=值
        否则
            数组名[i]=值
        结束
    结束
    数组指定位置删除(数组名,大小-1)
    返回 真
结束
功能 数组追加元素2(&数组名,值,下标="")
    变量 大小=数组大小(数组名)
    如果(下标=="")
        数组名[大小]=值
        返回 真
    结束
   
    遍历(变量 i = 大小; i > 下标; i--)
        数组名[i]=数组名[i-1]
    结束
    数组名[下标]=值
结束


作者: sam7894604    时间: 2015-12-16 17:06
循环取数组内的值,且要求真正顺序的话建议用
  1. 数组获取元素
复制代码
去获取…


多维数组处理参考如下
  1.     var 多维数组 = array()
  2.     for(var i = 0; i < 10; i++)
  3.         多维数组[i] = array()
  4.         for(var j = 0; j < 10; j++)
  5.             //这里就能这样写  多维数组[i][j]
  6.         end
  7.     end
复制代码






欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1