判断数组arr1中是否包含和数组arr2的FieldName名称一样的,包含返回true,不包含返回false

判断数组arr1中是否包含和数组arr2的FieldName名称一样的,包含返回true,不包含返回false

javascript 复制代码
let arr1 = [
    {index: 0, tableField: {FieldName: date1}}, 
    {index: 1, tableField: {FieldName: date2}},
    {index: 2, tableField: {FieldName: date3}}
  ];
  let arr2 = [
    {FieldName: date1, Selected: true},
    {FieldName: date2, Selected: true},
    {FieldName: date4, Selected: true},
  ]

为了判断数组 arr1 中是否至少有一个元素的 tableField.FieldName 与数组 arr2 中的任意一个 FieldName 相同,你可以使用 Array.prototype.some() 方法结合 Array.prototype.every() 方法来实现。以下是具体的实现步骤和代码示例:

实现步骤:

  1. 遍历 arr1 :对于 arr1 中的每个元素,检查其 tableField.FieldName。
  2. 检查 arr2 :对于 arr1 中的每个 tableField.FieldName,检查它是否出现在 arr2 的任何元素的 FieldName 中。
  3. 返回结果 :如果找到至少一个匹配的 FieldName,返回 true;否则,返回 false。

代码示例:

javascript 复制代码
let arr1 = [
    { index: 0, tableField: { FieldName: 'date1' } },
    { index: 1, tableField: { FieldName: 'date2' } },
    { index: 2, tableField: { FieldName: 'date3' } }
];

let arr2 = [
    { FieldName: 'date1', Selected: true },
    { FieldName: 'date2', Selected: true },
    { FieldName: 'date4', Selected: true },
];

// 判断 arr1 中是否有元素的 tableField.FieldName 出现在 arr2 的 FieldName 中
let isFieldInArr2 = arr1.some(item => arr2.some(fieldItem => fieldItem.FieldName === item.tableField.FieldName));

console.log(isFieldInArr2); // 输出:true 或 false

解释:

  • arr1.some() 方法检查 arr1 中是否至少有一个元素满足条件。如果找到至少一个,它立即返回 true。
  • arr2.some() 方法在 arr1 的每个元素中检查 tableField.FieldName 是否与 arr2 中的任意一个 FieldName 相等。
  • 如果 arr1 中的某个元素的 tableField.FieldName 与 arr2 中的任意一个 FieldName 相等,isFieldInArr2 将被赋值为 true,否则为 false。

这种方法有效地检查了 arr1 中的字段名称是否至少有一个与 arr2 中的字段名称相匹配,并且能够立即停止检查,一旦找到匹配项,提高了效率。

案例:

javascript 复制代码
    let filterSelectedList = params.FieldList.filter(
      (x) => x.Selected
    );
    let resfilter = Outs.value.some((item) =>
      filterSelectedList.some(
        (i) =>
          i.TableName === item.TableField.TableName &&
          i.FieldName === item.TableField.FieldName
      )
    );
    if (resfilter) {
      ElMessage.error('存在重复名称');
      return;
    }
相关推荐
一水鉴天2 小时前
映射、哈希表与哈斯图:计算机科学的三种基线 20261003(元宝)
开发语言·人工智能
Frank_refuel2 小时前
C++11之一场名为“搬家”的 C++ 之旅
开发语言·c++
Wang's Blog3 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
2601_962071573 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
福兮说4 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
\光辉岁月/4 小时前
5.java-数组
java·开发语言
Java后端的Ai之路4 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
谢亮_vipxieliang5 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
时间的拾荒人5 小时前
Qt 多线程详解:从 QThread 到实战
开发语言·qt·面试
郑州光合科技余经理5 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程