【问题标题】:How to return multiple values of String that are present in an array如何返回数组中存在的多个字符串值
【发布时间】:2021-05-25 07:12:58
【问题描述】:

我有一个数组。

例如。 var ratio = ["Net Sales", "Total Sales", "Profit", "Day's Sale", "Average", "Sum"]

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

字符串例如:

var str = "ABC of [Net Sales = Total Sales (Profit)]"

我的最终输出应该是:["Net Sales", "Total Sales", "Profit"]

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

var stringIncludesItem = ratio.some(item => str.includes(item));

【问题讨论】:

  • some 用于知道是否存在元素,请改用filter

标签: javascript


【解决方案1】:

使用filter:

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));
console.log(stringIncludesItem)

【讨论】:

  • 这个问题是例如。 var ratio = ["Net Sales", "Net Sales1", "Net", "Sales"] 和我的字符串,例如。 var str = "净销售额1"。然后这将返回所有以比率存在的值。如何只获得净销售额1?
  • @Umang 对不起,我不明白您的后续问题。该答案给出了您所要求的确切输出,如果缺少更多详细信息,请将其编辑到您的问题中并更新答案。
  • @Umang 过滤器应该如何工作?如果要返回一个数组,那么它应该如何区分该值?它应该匹配整个字符串吗?它与最长的匹配吗?假设你有var ratio = ["Net Sales", "Net Sales1", "Net", "Sales"] 为什么它应该匹配"Net Sales" 而不是"Net""Sales"
【解决方案2】:

您可以使用regex 来获取您需要的字符串:

const arr = ["Net Sales", "Total Sales", "Profit", "Day's Sale", "Average", "Sum"];

const str = "ABC of [Net Sales = Total Sales (Profit)]";

const regex = new RegExp(arr.join('|'), 'g');

console.log(str.match(regex));

【讨论】:

    【解决方案3】:

    .some() 仅在至少有一项针对所施加的条件返回 true 时才返回 true。 .filter() 过滤掉(删除,但不是从原始数组中删除)对于所施加的条件不返回 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 ratio = ["Net Sales", "Net Sales1", "Net", "Sales"] 和我的字符串,例如。 var str = "净销售额1"。然后这将返回所有以比率存在的值。如何只获得净销售额1?
    • 您的代码返回一个与预期输出不匹配的布尔值。
    • 对不起,我写错了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 2011-07-27
    相关资源
    最近更新 更多