判断数组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.FieldNamearr2 中的任意一个 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;
    }
相关推荐
蓝婷儿22 分钟前
前端面试每日三题 - Day 34
前端·面试·职场和发展
uyeonashi23 分钟前
【Boost搜索引擎】构建Boost站内搜索引擎实践
开发语言·c++·搜索引擎
CopyLower24 分钟前
苹果计划将AI搜索集成至Safari:谷歌搜索下降引发的市场变革
前端·人工智能·safari
再睡一夏就好26 分钟前
从硬件角度理解“Linux下一切皆文件“,详解用户级缓冲区
linux·服务器·c语言·开发语言·学习笔记
TIF星空1 小时前
【使用 C# 获取 USB 设备信息及进行通信】
开发语言·经验分享·笔记·学习·microsoft·c#
我是Superman丶2 小时前
【技巧】前端VUE用中文方法名调用没效果的问题
前端·javascript·vue.js
斯~内克2 小时前
Vue 3 中 watch 的使用与深入理解
前端·javascript·vue.js
Smile丶凉轩3 小时前
Qt 界面优化(绘图)
开发语言·数据库·c++·qt
蜡笔小柯南4 小时前
解决:npm install报错,reason: certificate has expired
前端·npm·node.js
reasonsummer4 小时前
【办公类-100-01】20250515手机导出教学照片,自动上传csdn+最大化、最小化Vs界面
开发语言·python