arrays - Swift 中的数组操作和重新排序

标签 arrays swift filter append

给定一个数组(例如,[ 1, 0, 2, 0, 0, 3, 4 ]),实现方法 将非零元素移动到数组的开头(其余元素无关紧要)

我已经按如下方式实现,它有效但我想知道更短的方法吗?

import Foundation

var inputArray = [ 1, 0, 2, 0, 0, 3, 4 ]

func remoZeros (inputArray :[Int]) -> [Int]
{
  var nonZeroArray = [Int]()
  var zeroArray = [Int]()

  for item in inputArray
  {
    if item != 0
    {
      nonZeroArray.append(item)
    }
    else
    {
      zeroArray.append(item)
    }
  }

return nonZeroArray + zeroArray

}

var result = remoZeros (inputArray: inputArray)

最佳答案

你可以试试

var inputArray = [ 1, 0, 2, 0, 0, 3, 4 ]

func remoZeros (inputArray :[Int]) -> [Int] {

   return inputArray.filter{$0 != 0} + inputArray.filter{$0 == 0}
}

关于arrays - Swift 中的数组操作和重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52882611/

相关文章:

带因子的时间序列的滚动和

arrays - Swift 字符串数组的索引号

arrays - AS3 :removing every elements in an array at once using for loop

python - numpy 数组中后续对的元素之间的差异(不是 numpy.diff)

swift - 错误 : Multiple commands produce . .. x86_64.swiftmodule

ios - 如何在swift中发出http请求? (错误: on json)

ios - 从 Swift 访问 extern const struct

javascript - 在 javascript 数组中查找 NaN 的索引

python - 使用Python根据文件中的标题名称更改CSV数值

jquery - 如何选择除第一次出现的类之外的所有类