【发布时间】:2021-10-19 21:22:57
【问题描述】:
我有两个数组,数组 A 有一个元素列表,这些元素可能包含或不包含数组 B 中的元素。我想过滤数组 A,使其仅包含包含数组 B 中至少一个元素的元素。
const a = [
'cqAWS1x2',
'cqAM1c',
'cqA10a + cqA10b',
'cqA10axZAF + cqA10bxZAF']
const b = [
'cqAWS1x2',
'cqA10a',
'cqA10axZAF']
我想过滤一个,所以它会是
['cqAWS1x2',
'cqA10a + cqA10b',
'cqA10axZAF + cqA10bxZAF']
'cqAWS1x2' 因为数组 b 包含该元素,'cqA10a + cqA10b' 因为 b 包含“cqA10a”,它是 'cqA10a + cqA10b' 的一部分。 'cqA10axZAF + cqA10bxZAF' 也一样,因为 b 包含 'cqA10axZAF'。
这是我目前所拥有的:
a.filter(avc => b.some(bvc => bvc.includes(avc)))
在结果中,我只得到 ['cqAWS1x2'] 而不是 'cqA10a + cqA10b' 和 'cqA10axZAF + cqA10bxZAF'。
感谢大家的帮助!
【问题讨论】:
-
关闭@HereticMonkey,但正是
some()和String#includes()让OP 出错了。
标签: javascript