【发布时间】:2019-12-13 05:28:22
【问题描述】:
假设我们有两个这样的数组:
let s1 = ["A", "B", "C", "D", "B"] // Note: "B" has been occurred 2 times
let s2 = ["A", "B", "C", "D", "B", "A", "X", "Y"] // // Note: "B" has been occurred 2 times just like s1 but we have another occurrence for "A"
我想根据这两个数组创建一个新数组 (let s3),我们将删除出现次数多于数组s1中相同元素出现次数的元素
所以s3 array 会是这样的:
let s3 = ["A", "B", "C", "D", "B", "X", "Y"] // we just removed "A" cause it occurred more than "A" occurances in s1
请注意,我们还需要其他任何东西 ("X", "Y")。我们只想处理额外的事件。
到目前为止,我可以找到这样的重复出现的索引,但我找不到一种方法来比较每个出现以查看它是否是额外的(复杂的):
let s1 = ["A", "B", "C", "D", "B"]
let s2 = ["A", "B", "C", "D", "B", "A", "X", "Y"]
var s3 = [];
for (let i = 0; i < s2.length; i++) {
for (let j = 0; j < s1.length; j++) {
if (s2[i] === s1[j]) {
s3.push(i);
break;
}
}
}
console.log(s3)
我的英语很差,我不知道我能不能解释一下这个问题!
注意:我可以简单地使用 s3 = [...new Set(s2)] 删除重复的元素,但我想要别的东西。
【问题讨论】:
-
感谢 Michael 的评论,但它有所不同......我可以简单地使用
s2 = [...new Set(s2)]删除重复的元素,但我想要别的东西...... -
抱歉,重新阅读问题。你想要数组的union。
-
这是您正在寻找的答案吗? stackoverflow.com/questions/9229645/…
-
谢谢...我会试试那些...
标签: javascript