InterSection

InterSection(集合)

以下会来实作怎么找寻两个array的集合


先使用两个迴圈来实作BigO(n^2)

let array1 = [1,2,3,4,5]let array2 = [1,3,5,7,9]function interSection(arrayA, arrayB){    let result = [] //建立空阵列    for(let i = 0; i < arrayA.length; i++){        for(let j = 0; j<arrayB.length; j++){            if(arrayA[i] === arrayB[j]){                result.push(arrayA[i]) //塞入该数值            }        }    } return result //回传结果}console.log(interSection(array1,array2)) //[1, 3, 5]

小试身手複习一下Object使用

let c = "Hello"function count(inputStr){    let inputArr = inputStr.split('')    let inputOBJ = {}        for(let i = 0; i<inputArr.length; i++){        if(!inputOBJ[inputArr[i]]){            inputOBJ[inputArr[i]] = 1        }else{            inputOBJ[inputArr[i]] +=1        }    }    for(let t in inputOBJ){        if(inputOBJ[t] >= 2){            console.log(t)        }    }}count(c) //l

使用Object计算 BigO(n)

let array1 = [1,2,3]let array2 = [1,3,5]function Counter(arrayA, arrayB){    let result = []    let array3 = arrayA.concat(arrayB)    let arrayOBJ = {}    for(let i = 0; i < array3.length; i++){        if(!arrayOBJ[array3[i]]){ //若false则arrayOBJ{key:1:value:1}            arrayOBJ[array3[i]] = Number.parseInt(1)        }else{            arrayOBJ[array3[i]] += 1 //重複之后key+1        }        console.log(arrayOBJ)           }     for(let property in arrayOBJ){ //        console.log(result)        if(arrayOBJ[property] >= 2){ //找寻arrayOBJ的key有没有value >=2            result.push(property) //并且塞入result        }    }return result}console.log(Counter(array1, array2)) //[ '1', '3' ]

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章