找回密码
 加入
搜索
查看: 1935|回复: 9

[AU3基础] 根据索引 删除数组中的元素的问题,请教![已解决]

  [复制链接]
发表于 2012-4-13 12:02:20 | 显示全部楼层 |阅读模式
本帖最后由 xiaochuan 于 2012-4-13 12:27 编辑

#include <Array.au3>

Local $a[5]=[0,1,2,3,4]   ;大数组
Local $b[3]=[0,1,2]  ;索引数组, 用来_ArrayDelete做参

Local $x

For $x=0 To 2
        _ArrayDelete($a,$b[$x])
Next

_ArrayDisplay($a);  ==>结果是[1,3], 怎么得到[3,4]呢 ? 可以这样_ArrayDelete($a,$b[0])

但是 如果想删除数组中任意一些元素,而且这些元素是不规律的索引,就蒙了。

如果有一个大数组,一个索引数组,求助 根据索引数组 遍历删除大数组中元素 的方法,多谢!

评分

参与人数 1金钱 +15 收起 理由
afan + 15 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2012-4-13 12:10:11 | 显示全部楼层
不要删 $a[0] ,
楼主该习惯习惯从$a[1] 开始存放数据
 楼主| 发表于 2012-4-13 12:13:09 | 显示全部楼层
不要删 $a[0] ,
楼主该习惯习惯从$a[1] 开始存放数据
veket_linux 发表于 2012-4-13 12:10


大哥,这个我明白,我就是举个例子。继续求教删除元素的问题。
发表于 2012-4-13 12:17:47 | 显示全部楼层
看错了

分析:
当你删掉$a[0] 时
数组变为
$a[0]  $a[1]    $a[2]  $a[3]
1         2            3       4
然后你再删
$a[1]
删的 是原来的 $a[2] 即2
发表于 2012-4-13 12:19:56 | 显示全部楼层
for 循环 倒过来先删后面的 再删前面的(b要从小到大排好序,从b的尾部开始取索引)
 楼主| 发表于 2012-4-13 12:20:10 | 显示全部楼层
看错了

分析:
当你删掉$a[0] 时
数组变为
$a[0]  $a[1]    $a[2]  $a[3]
1         2            ...
veket_linux 发表于 2012-4-13 12:17


对啊,删完一个之后,原数组就变了,再继续删,就不是想要的了,如何能准确的 根据索引数组,去批量删除 对应的元素呢? 好晕~~
 楼主| 发表于 2012-4-13 12:22:35 | 显示全部楼层
for 循环 倒过来先删后面的 再删前面的(b要从小到大排好序,从b的尾部开始取索引)
veket_linux 发表于 2012-4-13 12:19



   请给个例子吧,这个思路好晕~~
发表于 2012-4-13 12:23:30 | 显示全部楼层

#include <Array.au3>
Local $a[5]=[0,1,2,3,4]   ;大数组
Local $b[3]=[0,1,2]  ;索引数组, 用来_ArrayDelete做参
Local $x
For $x=UBound($b)-1 To 0 Step -1
        _ArrayDelete($a,$b[$x])
Next
_ArrayDisplay($a); 

评分

参与人数 2金钱 +40 收起 理由
zldfsz + 20
afan + 20

查看全部评分

 楼主| 发表于 2012-4-13 12:25:48 | 显示全部楼层
veket_linux 发表于 2012-4-13 12:23



    ok,明白了,原来如此,多谢!!!!实在没想到。。。多谢!!!!
发表于 2012-4-13 17:51:16 | 显示全部楼层
回复 8# veket_linux


    原来是这样啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-30 15:36 , Processed in 0.104418 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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