爱美食的程序员 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日

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)