gpt4 book ai didi

performance - 使用 Haxe While 循环从数组中删除所有值

转载 作者:行者123 更新时间:2023-12-02 08:05:29 24 4
gpt4 key购买 nike

我想删除数组中所有可能重复的值。目前我在 while 循环中使用 remove(x:T):Bool 函数,但我想知道表达式部分。

我开始使用:

function removeAll(array:Array<String>, element:String):Void
while (array.remove(element)) {}

但我想知道这些行中的任何一行是否会更有效率:

while (array.remove(element)) continue;
while (array.remove(element)) true;
while (array.remove(element)) 0;

或者它是否有任何不同。

我猜测使用 continue 效率较低,因为它实际上必须做一些事情,true0 效率稍微高一些,但仍然做一些事情,{} 可能是最有效的。

有人知道这方面的背景信息吗?

最佳答案

虽然其他建议的filter,它会创建一个新的列表/数组实例,这可能会导致您的其他代码丢失引用。

如果你循环array.remove,它每次都会循环遍历数组前面的所有元素,这不是那么高效。

IMO 更好的方法是使用反向 while 循环:

var i = array.length;
while(--i >= 0)
if(array[i] == element) array.splice(i, 1);

关于performance - 使用 Haxe While 循环从数组中删除所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51944422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com