我有两个数组,sample1
和sample2
。我怎样才能获得sample1中的内容,而不是sample2
?
var sample1 = [1, 2, 3, 4];
var sample2 = [1, 2];
var sample3 = [3, 4]; //what I want to get
应用:两个数组,每个数组包含一些discord.js guildmembers。
我尝试过的事情:
console.log(sample1.find(el => !sample2.includes(el)).toString());
// Cannot read property 'toString' of undefined
我知道这样做的一种方法是查看sample1数组,然后如果sample2中没有某些内容,则将其推送到新数组。但是,我知道有更短更有效的方法,特别是如果sample1和sample2很长的话。
为了澄清,sample1和sample2未定义。
答案 0 :(得分:1)
.find()
将返回与条件匹配的第一个元素。
您正在寻找的是找回新阵列。为此,您可以使用.filter()
返回一个过滤数组,如下所示:
console.log(sample1.filter(el => !sample2.includes(el))); // outputs [3, 4]