You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于部分匹配字符串对比两个数组并移除对应元素?

解决数组部分匹配过滤问题

你原代码的问题确实是完全匹配导致的:arrayToRemove.includes(e)是检查当前元素e是否和arrayToRemove里的某一项完全相等,但你的元素是blue.house这类带后缀的字符串,自然匹配不到任何项,所以返回空数组。

方法一:使用filter + some + 字符串includes

通过some遍历要移除的关键词,判断当前元素是否包含其中任意一个,再取反保留不需要移除的元素:

var arrayComplete = [
  'blue.house',
  'blue.bird',
  'blue.ocean',
  'red.chair',
  'red.curtain',
  'black.screen',
  'green.grass',
  'green.parrot'
];

var arrayToRemove = ['blue', 'red'];

let newArray = arrayComplete.filter(e => !arrayToRemove.some(word => e.includes(word)));
console.log(newArray); // 输出:['black.screen','green.grass','green.parrot']

方法二:使用正则表达式

把要移除的关键词拼接成正则,一次性匹配是否包含任意关键词:

var arrayComplete = [
  'blue.house',
  'blue.bird',
  'blue.ocean',
  'red.chair',
  'red.curtain',
  'black.screen',
  'green.grass',
  'green.parrot'
];

var arrayToRemove = ['blue', 'red'];

const removePattern = new RegExp(arrayToRemove.join('|'));
let newArray = arrayComplete.filter(e => !removePattern.test(e));
console.log(newArray); // 输出:['black.screen','green.grass','green.parrot']

内容的提问来源于stack exchange,提问作者Lidm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 22:55:16