您的位置:首页 > 其它

数组的交集、并集……

2017-08-03 11:16 218 查看
1.集合之间的交集:

Array.intersect =
function () {  

    var result = new
Array();  

    var obj =
{};  

    for (var
i = 0; i
< arguments.length; i++) {  

        for (var
j = 0; j
< arguments[i].length; j++) {  

            var str
= arguments[i][j];  

            if (!obj[str]) {  

                obj[str] = 1;  

            }  

            else {  

                obj[str]++;  

                if (obj[str]
== arguments.length)  

                {  

                    result.push(str);  

                }  

           
}//end else  

        }//end for j  

    }//end for i  

    return
result;  

}  

console.log(Array.intersect(['1','2'],['3','2','4']))//["2"];

2.集合之间的并集:

Array.union =
function () {  

    var arr = new
Array();  

    var obj =
{};  

    for (var
i = 0; i
< arguments.length; i++) {  

        for (var
j = 0; j
< arguments[i].length; j++)  

        {  

            var str=arguments[i][j];  

            if (!obj[str])  

            {  

                obj[str] = 1;  

                arr.push(str);  

            }  

        }//end for j  

    }//end for i  

    return arr;  

}  
console.log(Array.union(["1",
"2",
"3"], ["2",
"3",
"4",
"5",
"6"]))//["1","2", "3", "4", "5", "6"]

3.集合去掉重复元素

Array.prototype.uniquelize =
function () {  

    var tmp =
{},  

        ret = [];  

    for (var
i = 0, j
= this.length; i
< j; i++) {  

        if (!tmp[this[i]]) {  

            tmp[this[i]]
= 1;  

            ret.push(this[i]);  

        }  

    }  

  

    return ret;  

}  
console.log([1,
2,
3,
2,
3,
4,
5,
6].uniquelize())//[1,2,3,4,5,6]

4.2个集合之间的差集

Array.prototype.minus =
function (arr) {  

    var result = new
Array();  

    var obj =
{};  

    for (var
i = 0; i
< arr.length; i++) {  

        obj[arr[i]] = 1;  

    }  

    for (var
j = 0; j
< this.length; j++) {  

        if (!obj[this[j]])  

        {  

            obj[this[j]]
= 1;  

            result.push(this[j]);  

        }  

    }  

    return result;  

};  
console.log(["2",
"3",
"5",
"6"].minus(["1",
"2",
"3"]))//["5", "6"]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: