javascript以简单方式唯一的两个数组的交集

时间:2018-09-19 09:15:46

标签: javascript

给出两个不等长的数组:

protected static Img readimg(Image num1) {
    PixelReader pixelReader = num1.getPixelReader();

    int height = (int)num1.getHeight();
    int width = (int)num1.getWidth();
    Img news = new Img(width, height);
    for (int y = 0; y < height; y++){
        for (int x = 0; x < width; x++){
            news.set(x, y, pixelReader.getArgb(x, y) );
        }
    }

    return news;

}

如何找到两个数组中共有的值?在这种情况下,输出应为“ 1、2、5、3”。

2 个答案:

答案 0 :(得分:2)

虽然您希望获得具有共同值的唯一项,但是可以对两个数组都使用Set并过滤唯一值。

此提案返回的结果与上述复制目标不同。

function getCommon(a, b) {
    return [...new Set(a)].filter(Set.prototype.has, new Set(b));
}

var a = [1, 2, 5, 1, 2, 5, 5, 3],
    b = [2, 5, 5, 3, 1, 10];
    
console.log(getCommon(a, b));

答案 1 :(得分:0)

在javascript中,您可以使用以下两个功能

	function intersect(a, b) {
  return a.filter(Set.prototype.has, new Set(b));
}
function removeDuplicates(arr){
    let unique_array = []
    for(let i = 0;i < arr.length; i++){
        if(unique_array.indexOf(arr[i]) == -1){
            unique_array.push(arr[i])
        }
    }
    return unique_array
}
var array1=intersect([1,2,5,1,2,5,5,3], [2,5,5,3,1,10]);
console.log(array1);
console.log(removeDuplicates(array1));