只包含一種元素類型的array是否相同swift
func arrayIsEqualToASortOfArray(firstArray: NSArray,thenArray: NSArray) -> Bool數組
一個數組是否包含另外一個數組全部元素spa
func arrayIsContain(firstArray: NSArray,isContainedByArray: NSArray) -> Boolcode
當數組中元素類型不止一種判斷二個數組中的元素是否相等,不能有元素重複字符串
func arrayIsEqual(firstArray: NSArray,thenArray: NSArray) -> Boolget
Demo點此io
// // NSArray+Extra.swift // 判斷二個數組中的全部元素是否相等 // // Created by codeIsMyGirl on 16/6/13. // Copyright © 2016年 codeIsMyGirl. All rights reserved. // import Foundation extension NSObject { // MARK: // MARK: 只包含一種元素類型的array 是否相同 /// 只包含一種元素類型的array 是否相同 func arrayIsEqualToASortOfArray(firstArray: NSArray,thenArray: NSArray) -> Bool { // 當全部元素都是 字符串 類型 if firstArray[0].isKindOfClass(NSString) { // 類型轉換 let firstA = firstArray as! [String]; let thenA = thenArray as! [String]; for i in firstA { // 若是出現不相等 直接返回 if thenA.contains(i) == false { return false; } } // 執行到這裏說明所有相等 return true; } // 當全部元素都是 數字 類型 if firstArray[0].isKindOfClass(NSNumber) { // 類型轉換 let firstA = firstArray as! [NSNumber]; let thenA = thenArray as! [NSNumber]; for i in firstA { // 若是出現不相等 直接返回 if thenA.contains(i) == false { return false; } } // 執行到這裏說明所有相等 return true; } return false; } // MARK: // MARK: 一個數組是否包換另外一個數組全部元素 /// 一個數組是否包換另外一個數組全部元素 func arrayIsContain(firstArray: NSArray,isContainedByArray: NSArray) -> Bool { if firstArray.count > isContainedByArray.count { print("被包含數組長度小於包含數組長度"); return false; } return publicCode(firstArray, thenArray: isContainedByArray); } // MARK: // MARK: 二個數組中的全部元素是否相等 /// 用於數組中元素不止一種 判斷二個數組中的全部元素是否相等 func arrayIsEqual(firstArray: NSArray,thenArray: NSArray) -> Bool { if firstArray.count != thenArray.count { return false; } return publicCode(firstArray, thenArray: thenArray); } } // MARK: // MARK: 抽取 extension NSObject { // MARK: // MARK: 公用代碼 /// 公用代碼 private func publicCode(firstArray: NSArray,thenArray: NSArray) -> Bool { let count = firstArray.count; // 相同的標記 var rightCount = 0; for i in 0..<count { // 獲取元素 let obj = firstArray[i]; // 判斷 NSString類型 if obj.isKindOfClass(NSString) { for j in thenArray { // 得到全部 相同類型 if j.isKindOfClass(NSString) { let thenObj = j as! String; if obj as! String == thenObj { rightCount += 1; } } } } // 判斷 NSNumber類型 if obj.isKindOfClass(NSNumber) { for j in thenArray { // 得到全部 相同類型 if j.isKindOfClass(NSNumber) { let thenObj = j as! NSNumber; if obj as! NSNumber == thenObj { rightCount += 1; } } } } } return count == rightCount; } }