听听那晚风 2021-01-20 17:58 采纳率: 53.8%
浏览 282
已采纳

将对象数组a中不包含数组b里的元素的项去除

var a = [
        { name: "aa", children: [{ name: "aa1" }, { name: "aa2" }] },
        { name: "bb", children: [{ name: "bb1" }, { name: "bb2" }] },
        { name: "cc", children: [{ name: "cc1" }, { name: "cc2" }] },
        { name: "dd", children: [{ name: "dd1" }, { name: "dd2" }] },
        { name: "ee", children: [{ name: "ee1" }, { name: "ee2" }] },
      ];
var b = ["aa1","aa2","cc1", "bb2","dd1" ];
//目标对象
var mune = [
        { name: "aa", children: [{ name: "aa1" },{ name: "aa2" }] },
        { name: "bb", children: [{ name: "bb2" }] },
        { name: "cc", children: [{ name: "cc1" }] },
        { name: "dd", children: [{ name: "dd1" }] },
      ];
  • 写回答

2条回答 默认 最新

  • 蔣伟平 2021-01-20 21:10
    关注

    var a = [

            { name: "aa", children: [{ name: "aa1" }, { name: "aa2" }] },

            { name: "bb", children: [{ name: "bb1" }, { name: "bb2" }] },

            { name: "cc", children: [{ name: "cc1" }, { name: "cc2" }] },

            { name: "dd", children: [{ name: "dd1" }, { name: "dd2" }] },

            { name: "ee", children: [{ name: "ee1" }, { name: "ee2" }] },

          ];

    var b = ["aa1","aa2","cc1", "bb2","dd1" ];

     

    for(var i=0;i<a.length;i++){

      for(var j=0;j<a[i].children.length;j++){

        if(b.indexOf(a[i].children[j].name)==-1){

          a[i].children.splice(j,1);

          j--;

        }

      }

      if(a[i].children.length==0){

        a.splice(i,1);

        i--;

      }

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?