Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift判断二个数组中的所有元素是否相等大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

  只包含一种元素类型的array是否相同 func arrayIsEqualToASortOfArray(firstArray: NSArray,thenArray: NSArray) -> Bool 一个数组是否包含另一个数组所有元素 func arrayIsContain(firstArray: NSArray,isContainedByArray: NSArray) -> Bool 当数组

Demo点此

//
//  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;
    }
    
}

大佬总结

以上是大佬教程为你收集整理的Swift判断二个数组中的所有元素是否相等全部内容,希望文章能够帮你解决Swift判断二个数组中的所有元素是否相等所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: