在 javascript 中获取一个数组中的内容而不是另一个数组中的内容
Get what's in one array and not the other, in javascript
我有两个数组,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 公会成员。
我试过的:
console.log(sample1.find(el => !sample2.includes(el)).toString());
// Cannot read property 'toString' of undefined
我知道这样做的一种方法是查看 sample1 数组,然后如果 sample2 中没有某些内容,则将其推送到新数组。但是,我知道有更短、更有效的方法可以做到这一点,尤其是当 sample1 和 sample2 很长的时候。
为澄清起见,sample1 和 sample2 并非未定义。
.find()
会return第一个符合条件的元素。
您正在寻找的是取回一个新阵列。为此,您可以使用 .filter()
其中 returns 过滤数组,如下所示:
console.log(sample1.filter(el => !sample2.includes(el))); // outputs [3, 4]
我有两个数组,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 公会成员。
我试过的:
console.log(sample1.find(el => !sample2.includes(el)).toString());
// Cannot read property 'toString' of undefined
我知道这样做的一种方法是查看 sample1 数组,然后如果 sample2 中没有某些内容,则将其推送到新数组。但是,我知道有更短、更有效的方法可以做到这一点,尤其是当 sample1 和 sample2 很长的时候。
为澄清起见,sample1 和 sample2 并非未定义。
.find()
会return第一个符合条件的元素。
您正在寻找的是取回一个新阵列。为此,您可以使用 .filter()
其中 returns 过滤数组,如下所示:
console.log(sample1.filter(el => !sample2.includes(el))); // outputs [3, 4]