gpt4 book ai didi

Javascript:设置数据结构:相交

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:54:38 28 4
gpt4 key购买 nike

试图让两个数据集相交,但我做不到。例如,在我下面的代码中,相交 mySet 和 mySet2 应该产生“1”,因为它们在它们的集合中都有一个值“1”。

var mySet = new Set();
var mySet2=new Set();
mySet.add(1);
mySet.add(2);
mySet.add("HELLOOOOO");
mySet2.add("hi");
mySet2.add(1);


var a = Array(mySet, mySet2);
console.log(a);

mySet.forEach(function(value) {
console.log(value);
});


mySet2.forEach(function(value) {
console.log(value);
});

function intersection_destructive(a, b)
{
var result = new Array();
while( mySet.length > 0 && mySet2.length > 0 )
{
if (mySet[0] < mySet2[0] ){ mySet.shift(); }
else if (mySet[0] > mySet2[0] ){ mySet2.shift(); }
else /* they're equal */
{
result.push(mySet.shift());
mySet2.shift();
}
}

return result;
}

第 1 组和第 2 组都有“1”,但我的函数 (intersection_destructive) 没有返回它。我不确定如何将它们相交,我搜索了 stackoverflow 并找到了 intersection_destructive 但它对我不起作用,我也尝试过:

array1.filter(function(n) {
return array2.indexOf(n) != -1
});

根据这个:Simplest code for array intersection in javascript

但是当我尝试运行它时,filter 出现错误。

最佳答案

遗憾的是,您已经发现没有本地交集或联合操作。不过,找到交叉点并不十分复杂:

let a = new Set([1,2,3])
let b = new Set([1,2,4])
let intersect = new Set([...a].filter(i => b.has(i)));
console.log(...intersect)

关于Javascript:设置数据结构:相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930894/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com