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

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

判断一个数组内元素是否在另一个数组内存在?
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>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • ECH_O_ 2022-04-15 23:32
    关注
    
        b.map(item=>{
          item.list.map((itenData,index)=>{
            if(a.indexOf(itenData.prop)==-1){
              item.list.splice(index,1)
            }
          })
        })
    console.log(b)
    
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 STM32U575 pwm和DMA输出的波形少一段
  • ¥30 android百度地图SDK海量点显示标题
  • ¥15 windows导入environment.yml运行conda env create -f environment_win.yml命令报错
  • ¥15 这段代码可以正常运行,打包后无法执行,在执行for内容之前一直不断弹窗,请修改调整
  • ¥15 C语言判断有向图是否存在环路
  • ¥15 请问4.11到4.18以及4.27和4.29公式的具体推导过程是怎样的呢
  • ¥20 将resnet50中的卷积替换微ODConv动态卷积
  • ¥15 通过文本框输入商品信息点击按钮将商品信息列举出来点击加入购物车商品信息添加到表单中
  • ¥100 这是什么压缩算法?如何解压?
  • ¥20 upload上传实验报错500,如何解决?(操作系统-windows)