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

时间:2018-10-18 21:07:55

标签: 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)

1 个答案:

答案 0 :(得分:2)

您可以尝试

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

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

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