爱美食的程序员 2022-04-15 22:22 采纳率: 73.3%
浏览 68
已结题

判断一个数组内元素是否在另一个数组内存在?

判断一个数组内元素是否在另一个数组内存在?
var a = ["name","sex","age","attr","num",]
    var b = [
      {
        label:'原始情况',
        list:[
          {
            label:'上报',
            prop:'port'
          },
          {
            label:'姓名',
            prop:'name'
          }      
        ]
      },
      {
        label:'现在情况',
        list:[
          {
            label:'年龄',
            prop:'age'
          }
        ]
      }
    ]

有两个数组a,b; 判断a数组中的元素在b数组中的list中存在,只要含有就返回一个 true;并且把list中不含有的删除

  • 写回答

2条回答 默认 最新

  • 林一怂儿 前端领域新星创作者 2022-04-16 01:09
    关注

    不知道你是不是需要写成一个方法。
    例:

    img

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    
    <body>
        <script>
            var a = ["name", "sex", "age", "attr", "num",]
            var b = [
                {
                    label: '原始情况',
                    list: [
                        {
                            label: '上报',
                            prop: 'port'
                        },
                        {
                            label: '姓名',
                            prop: 'name'
                        }
                    ]
                },
                {
                    label: '现在情况',
                    list: [
                        {
                            label: '年龄',
                            prop: 'age'
                        }
                    ]
                }
            ]
            /**
             * 有两个数组a,b; 判断a数组中的元素在b数组中的list中存在,只要含有就返回一个 true;并且把list中不含有的删除 
             */
            function hasKey(a, b) {
                let res = false;
                for (let i = 0; i < b.length; i++) {
                    for (let j = 0; j < b[i].list.length; j++) {
                        const item = b[i].list[j];
                        // 只要含有就返回一个 true;
                        if (a.indexOf(item.prop) > -1) res = true;
                        // 并且把list中不含有的删除
                        else b[i].list.splice(j, 1)
                    }
                }
                return res;
            }
    
            console.log(hasKey(a, b));
            console.log(b);
        </script>
    </body>
    </html>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月25日
  • 已采纳回答 4月17日
  • 创建了问题 4月15日

悬赏问题

  • ¥50 MATLAB APP 制作出现问题
  • ¥15 wannier复现图像时berry曲率极值点与高对称点严重偏移
  • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)
  • ¥15 DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI[/untitled30_war_e
  • ¥15 使用deepspeed训练,发现想要训练的参数没有梯度
  • ¥15 寻找一块做为智能割草机的驱动板(标签-stm32|关键词-m3)
  • ¥15 信息管理系统的查找和排序
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),怎么用读取的电磁传感器信号表示小车所在的位置
  • ¥15 如何解决y_true和y_predict数据类型不匹配的问题(相关搜索:机器学习)
  • ¥15 PB中矩阵文本型数据的总计问题。