【发布时间】:2021-12-03 08:15:20
【问题描述】:
我有两个字符串数组。我想查看一个数组是否具有与另一个数组相同的任何值,然后打印仅具有唯一值的数组。为此,我在两个数组上执行 JavaScript 每个函数,如果一个数组具有来自另一个数组的共同值,则返回布尔值,然后如果条件为真,我正在对数组进行过滤以显示数据。以下是数组:
marketingCarrierCode: ["DL", "AA"]
operatingCarrierCode: ["AA", "AA"]
现在我正在做每一个过滤器:
const hasSameCarrierCode = operatingAirlineCode.every(
code => marketingAirlineCode.indexOf(code) !== -1,
);
const listOfOperatingCarriers = operatingAirlineCode.filter(
code => marketingAirlineCode.indexOf(code) === -1,
);
这给了我:
hasSameCarrierCode: true
listOfOperatingCarriers: []
现在我想在一个函数中执行每个和过滤函数,我该怎么做?
【问题讨论】:
-
你想要和上面一样的输出吗?
hasSameCarrierCode: true listOfOperatingCarriers: [] -
"...如果一个数组具有与另一个数组相同的值":请注意,您的函数不执行 this 检查。相反,它会检查一个数组是否有 only 与另一个数组相同的值。如果你真的对第一个条件感兴趣,你应该使用
Array.some()而不是Array.every() -
@SanaMumtazm 是的
-
@lbsn 我想做我写的代码,也许我无法用语言正确描述,我现在只想将这些 each 和 filter 函数组合到一个函数中,而不是使用这两个函数。
-
@ashfaq 在这种情况下,您不需要第一个功能,正如下面 davood 的回答中所指出的那样。如果第一个条件为真,
Array.filter()将始终返回一个空数组,因此您只需检查listOfOperatingCarriers的长度即可
标签: javascript arrays reactjs