js拖拽元素到另一個元素_如何從shell陣列中刪除一個元素
技術標籤:js拖拽元素到另一個元素js陣列刪除指定元素js陣列刪除某個元素vue刪除陣列中的一條資料vue陣列刪除指定元素刪除json中的一個元素
點選藍字關注我們吧!根據下標刪除從一個數組中刪除第二個元素。程式碼如下:
#!/bin/basharray1=(a b c d a b c d)unset array1[1]echo ${array1[*]}
輸出結果:
a c d a b c d
根據元素刪除
在有些情況下,我們想刪除陣列中指定元素,比如刪除上述陣列中的`b`。程式碼如下:
#!/bin/basharray1=(a b c d a b c d)array1=(${array1[*]/b})#將*換成@,結果一致echo ${array1[*]}
結果如下:
a c d a c d
1 將${array1[*]/b} 換成"${array1[*]/b}"
為了更好的測試,加入一個迴圈,對移除b之後的陣列進行迴圈輸出。
程式碼如下:
#!/bin/basharray1=(a b c d a b c d)array1=( "${array1[*]/b}" )echo ${array1[*]}for value in ${array1[@]} #將@換成*,結果一致do echo $valuedone
結果如下:
a c d a c dacdacd
將上述程式碼中的for迴圈修改成for value in "${array1[@]}"
程式碼如下:
#!/bin/basharray1=(a b c d a b c d)array1=( "${array1[*]/b}" )echo ${array1[*]}for value in "${array1[@]}" #將@換成*,結果一致do echo $valuedone
結果如下:
a c d a c da c d a c d
2 將${array1[*]/b} 換成 "${array1[@]/b}"
程式碼如下:
#!/bin/basharray1=(a b c d a b c d)array1=( "${array1[@]/b}" )echo ${array1[*]}for value in ${array1[@]} #將@換成*,結果一致do echo $valuedone
結果如下:
a c d a c dacdacd
將上述程式碼中的for迴圈修改成for value in "${array1[@]}"
程式碼如下:
#!/bin/basharray1=(a b c d a b c d)array1=( "${array1[@]/b}" )echo ${array1[*]}for value in "${array1[@]}"do echo $valuedone
結果如下:
a c d a c dacdacd
將上述程式碼中的for迴圈修改成for value in "${array1[*]}"
程式碼如下:
#!/bin/basharray1=(a b c d a b c d)array1=( "${array1[@]/b}" )echo ${array1[*]}for value in "${array1[*]}"do echo $valuedone
結果如下:
a c d a c da c d a c d
刪除包含某個字元的元素
程式碼如下:
#!/bin/basharray1=(abc bcd cdf dfg)array1=( "${array1[@]/*b*}" )echo ${array1[*]}
結果如下:
cdf dfg
這個方案和上面的方案,本質上就是擷取字串。
*和@的區別
關於兩者的區別,直接引用文件(https://www.gnu.org/software/bash/manual/html_node/Arrays.html) 會更加直接:
These subscripts differ only when the word appears within double-quotes. If the word is double-quoted, ${name[*]} expands to a single word with the value of each array member separated by the first character of the IFS variable, and ${name[@]} expands each element of name to a separate word.