【问题标题】:Javascript check if value exsist in two arrays return missing valueJavascript检查两个数组中是否存在值返回缺失值
【发布时间】:2020-07-23 05:16:06
【问题描述】:

我想知道如果缺少某个值,则缺少哪个值。

Array1: 你现在有这些值

['cloud:user', 'cloud:admin']

Array2:您需要这些值才能继续

['cloud:user', 'cloud:admin', 'organization:user']

返回真或假的当前方法。但是我想知道如果缺少一个值,则缺少哪个值。例如:“组织:用户”。如果没有任何遗漏,则返回 true。

let authorized = roles.every(role => currentResourcesResult.value.includes(role));

【问题讨论】:

标签: javascript arrays include


【解决方案1】:

只需使用filter 方法并检查arr1 的元素中的some 是否 等于arr2 的元素:

const missingValues = arr2.filter(f => !arr1.some(s => s ==f));

一个例子:

let arr1 = ['cloud:user', 'cloud:admin']
let arr2 = ['cloud:user', 'cloud:admin', 'organization:user'];
const missingValues = arr2.filter(f => !arr1.some(s => s ==f));
console.log(missingValues);

【讨论】:

    【解决方案2】:

    您可以使用Array.prototye.filter()查看。

    const domain = ['cloud:user', 'cloud:admin', 'organization:user'];
    const data = ['cloud:user', 'cloud:admin'];
    
    const notInDomain = domain.filter(item => data.indexOf(item) === -1);
    
    if (notInDomain.length > 0) {
      console.log('Some values are not in the domain set');
    }
    
    console.log(notInDomain);

    更新

    使用includes 代替indexOf 可以获得相同的结果。

    const notInDomain = domain.filter(item => !data.includes(item));
    

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 2021-05-21
      • 1970-01-01
      相关资源
      最近更新 更多