只包含一种元素类型的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; } }