Javascript 如何返回数组中存在的多个字符串值

Javascript 如何返回数组中存在的多个字符串值,javascript,Javascript,我有一个数组 例如,var比率=[“净销售额”、“总销售额”、“利润”、“日销售额”、“平均值”、“总和”] 我想返回与字符串比较时此数组中存在的所有值 字符串例如: var str=“ABC of[净销售额=总销售额(利润)]” 我的最终输出应该是:[“净销售额”、“总销售额”、“利润”] 我尝试使用some(),但它只返回布尔值 var stringIncludesItem = ratio.some(item => str.includes(item)); 仅当至少有一项针对所施加

我有一个数组

例如,
var比率=[“净销售额”、“总销售额”、“利润”、“日销售额”、“平均值”、“总和”]

我想返回与字符串比较时此数组中存在的所有值

字符串例如:

var str=“ABC of[净销售额=总销售额(利润)]”
我的最终输出应该是:
[“净销售额”、“总销售额”、“利润”]

我尝试使用some(),但它只返回布尔值

var stringIncludesItem = ratio.some(item => str.includes(item));
仅当至少有一项针对所施加的条件返回true时,才会返回true。过滤掉(从原始数组中删除,但不从原始数组中删除)对施加的条件不返回true的元素

var ratio = ["Net Sales", "Total Sales", "Profit", "Day's Sale", "Average", "Sum"];
var str = "ABC of [Net Sales = Total Sales (Profit)]";
var stringIncludesItem = ratio.filter(item => str.includes(item));

使用
过滤器

var比率=[“净销售额”、“总销售额”、“利润”、“日销售额”、“平均值”、“总和”];
var str=“ABC of[净销售额=总销售额(利润)]”;
var stringincludeItem=ratio.filter(item=>str.includes(item));
console.log(StringIncludeItem)
您可以使用获取所需字符串:

const arr=[“净销售额”、“总销售额”、“利润”、“日销售额”、“平均值”、“总和”];
const str=“ABC of[净销售额=总销售额(利润)]”;
const regex=new RegExp(arr.join(“|”),“g”);

console.log(str.match(regex))
一些
用于了解其元素是否存在,请使用
过滤器
而不是使用变量比率=[“净销售额”、“净销售额1”、“净销售额”、“销售额”]和我的字符串,例如var str=“净销售额1”。然后,它将返回以比率表示的所有值。如何仅获取Net Sales1?您的代码返回的布尔值与预期输出不匹配。抱歉,我输入了一个拼写错误!这方面的问题是,对于例如var ratio=[“净销售额”、“净销售额1”、“净销售额”、“销售额”]和我的字符串例如var str=“净销售额1”。然后,它将返回以比率表示的所有值。我怎样才能只获得净销售额1?@Umang对不起,我不明白你的后续问题。此答案给出了您的问题所要求的确切输出,如果缺少一些进一步的细节,请将其编辑到您的问题中,我将更新答案。@Umang过滤器应该如何工作?如果要返回一个数组,那么它应该如何区分值?它应该和整个字符串匹配吗?它和最长的相配吗?假设你有
var比率=[“净销售额”、“净销售额1”、“净销售额”、“销售额”]
为什么它应该匹配
“净销售额”
,而不是同时匹配
“净销售额”
“销售额”