爱美食的程序员 2022-04-15 14: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-15 17: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月24日
  • 已采纳回答 4月16日
  • 创建了问题 4月15日