这是一个常见的问题,就是把数组中的 b 和 c 调换一下位置,什么办法最简单?
array:=["a","b","c","d"]
以下代码来自feiyue
上移:
下移:
i:=InStr(A_GuiControl, "上") ? Max(1,index-1) : Min(index+1,len)
r:=ini数组[i], ini数组[i]:=ini数组[index], ini数组[index]:=r
For k,v in ini数组
收藏选项.=v "`n"
这段代码不是一个完整代码,如果想运行自行脑补吧!
如果你有更好的方案请在留言去补充,这篇文章接受你的挑战了。
挑战成功,奖励10个积分!
判定标准:实现上述需求,方法与已挑战成功的均不一样!
Home::
array:=[“a”,”b”,”c”,”d”]
array.RemoveAt(2)
array.InsertAt(3, “b”)
For k, v in array
s .= k . “=” . v . “`n”
MsgBox % s
Return
不是你这个意思,是要两个项对调,移除第二项的时候你本来是不知道第二项是啥,你要先取出来,插入你取出来的那一项。
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#Persistent
#SingleInstance FORCE
SetBatchLines -1
array1:=[“a”,”b”,”c”,”d”]
test=
return
^S::
loop , % array1._maxindex()
{
if (mod(a_index,2)=0)
{
tmp1 :=array1[a_index]
array1[a_index] :=array1[a_index-1]
array1[a_index-1] :=tmp1
test.=array1[a_index-1] . array1[a_index]
}
}
MsgBox % test
Return
array:=[“a”,”b”,”c”,”d”]
ccc := Tx(2,4,array) ; 调换2-4
ddd := Tx(2,3,array) ; 调换2-3
MsgBox % “调换2-4 ” ccc[1] “-” ccc[2] “-” ccc[3] “-” ccc[4] “`n调换2-3 ” ddd[1] “-” ddd[2] “-” ddd[3] “-” ddd[4]
Tx(s, w := “”,arr*){
Newarr := []
w := !w ? s+1 : w
For k,v in arr[1]
{
If (k = s){
Newarr.Push(arr[1][w])
Continue
}
If (k = w){
Newarr.Push(arr[1][s])
Continue
}
Newarr.Push(arr[1][k])
}
Return Newarr
}
array:=[“a”,”b”,”c”,”d”,”e”,”f”]
Tx(array,2,4) ; 调换2-4
Tx(ByRef arr, s, w := “”){
Newarr := []
w := !w ? s+1 : w
For k,v in arr
{
If (k = s){
Newarr.Push(arr[w])
Continue
}
If (k = w){
Newarr.Push(arr[s])
Continue
}
Newarr.Push(arr[k])
}
arr := Newarr
}