2016-11-09 2 views
-1

수량이 0보다 큰 다른 배열에 대한 응답을 추가하고 싶습니다. 내 배열을 반복하지 않고도 가능할 수 있습니까? 내 배열은 많은 가치를 가지고 있기 때문에 그들의 모든 기능이 있습니다. 어떤 도움을 주시면 감사하겠습니다.신속한 배열 필터

{ 
      id = 1; 
      img = "http://alatiffy.com/admin/uploads/1478601364.png"; 
      name = "Executive Lunch Tiffy"; 
      price = 99; 
      quantity = 1; 
     }, 
      { 
      id = 2; 
      img = "http://alatiffy.com/admin/uploads/1478601409.png"; 
      name = "Deluxe Lunch Tiffy"; 
      price = 149; 
      quantity = 0; 
     }, 
      { 
      id = 4; 
      img = "http://alatiffy.com/admin/uploads/1478583806.jpg"; 
      name = "KADHI PAKODA CHAWAL"; 
      price = 59; 
      quantity = 1; 
      status = Y; 
     }, 
      { 
      id = 2; 
      img = "http://alatiffy.com/admin/uploads/1478583832.jpg"; 
      name = "DAL MAKHNI CHAWAL"; 
      price = 59; 
      quantity = 0; 
      status = Y; 
     }, 
      { 
      id = 5; 
      img = "http://alatiffy.com/admin/uploads/1478583850.jpg"; 
      name = "SHAHI PANEER CHAWAL"; 
      price = 59; 
      quantity = 0; 

status = Y; 
    }, 
+0

이 배열에서 무엇을 필터링 하시겠습니까? 당신은 별도의 객체로 배열의 각 dict을 만들었습니까? – Tj3n

+0

Swift'Array'와'filter' 함수를 사용하십시오. 아주 쉽게. – vadian

+0

@AanchalGupta 내 대답을 확인하십시오. 당신은 약간의 아이디어를 얻을 것이다. –

답변

-1

이 코드를 시도

var filteredResults = arr.filter { $0.quantity > 0 } 
+1

사전에는 '수량'이라는 속성이 없습니다. – Fogmeister

0

스위프트 3.X는

당신은 유형의 사전의 배열에 위의 JSON 데이터를 유지한다고 가정 [String:AnyObject]

그래서 사전은 0이 될 것입니다.

var dict = Dictionary<String,AnyObject>() 
그리고 어레이 수량의 배열를 필터링하기 위해 사전

var array = [Dictionary<String,AnyObject>]() 

의 상기 유형의 배열이보다 크면 0

let filteredArray = array.filter{$0["quantity"] as! Int > 0} 

하여 filteredArray 모두 포함될 0보다 큰 양의 사전 객체.

사전을 사용하지 않고 음식이나 점심 아이템 모델 클래스를 만들고 모델 자체에 필터를 적용 해 보시기 바랍니다.