判断数组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;
    }
相关推荐
大猩猩X12 分钟前
vxe-upload vue 实现附件上传、手动批量上传附件的方式
vue.js·vxe-ui
蓝天白云下遛狗26 分钟前
goole chrome变更默认搜索引擎为百度
前端·chrome
future14121 小时前
C#学习日记
开发语言·学习·c#
come112341 小时前
Vue 响应式数据传递:ref、reactive 与 Provide/Inject 完全指南
前端·javascript·vue.js
king_harry1 小时前
Java程序-OceanBase Connector/J 示例
开发语言
前端风云志1 小时前
TypeScript结构化类型初探
javascript
musk12121 小时前
electron 打包太大 试试 tauri , tauri 安装打包demo
前端·electron·tauri
傻啦嘿哟2 小时前
Python 办公实战:用 python-docx 自动生成 Word 文档
开发语言·c#
翻滚吧键盘2 小时前
js代码09
开发语言·javascript·ecmascript
q567315232 小时前
R语言初学者爬虫简单模板
开发语言·爬虫·r语言·iphone