爱美食的程序员 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 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求
  • ¥20 antv g6 折线边如何变为钝角
  • ¥30 如何在Matlab或Python中 设置饼图的高度
  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析