鍍金池/ 問答/HTML/ 大佬幫忙看一下邏輯的問題

大佬幫忙看一下邏輯的問題

var a = [
                {
                    name: 'a',
                    child: [{
                            name: 'bb',
                            limit: 12
                        },
                        {
                            name: 'ss',
                            limit: 12
                        }
                    ]
                }, 
                {
                    name: 'b',
                    child: [{
                            name: 'ss',
                            limit: 12
                        },
                        {
                            name: 'kk',
                            limit: 12
                        }
                    ]
                }, 
                {
                    name: 'c',
                    child: [{
                            name: 'aa',
                            limit: 12
                        },
                        {
                            name: 'mm',
                            limit: 12
                        }
                    ]
                }, 
                {
                    name: 'd',
                    child: [{
                            name: 'aa',
                            limit: 12
                        },
                        {
                            name: 'mm',
                            limit: 12
                        }
                    ]
                }
            ];
            var b = [
                {
                    name: 'b',
                    child: [{
                        name: 'ss'
                    },{
                        name:'kk'
                    }]
                }, 
                {
                    name: 'a',
                    child: [{
                        name: 'ss'
                    }]
                }
            ];
            var c = [];
            a.forEach(function(e) {
                b.forEach(function(i) {
                    if(e.name == i.name) {
                        e.child.forEach(function(j, index1) {
                            i.child.forEach(function(k, index2) {
                                if(j.name !== k.name) {
                                    e.child.splice(index1,1);
                                    console.log(e.child)
                                }
                            })
                        })
                        c.push(e);
                    };
                })
        });
            console.log(c)

我想要找出a里面所有和b name相同的,為什么我找出來是這樣的

clipboard.png

回答
編輯回答
帥到炸

clipboard.png

2017年11月6日 01:32
編輯回答
忠妾

你出了什么問題能多花一句話解釋一下么

2017年4月20日 07:50
編輯回答
柚稚

你好好捋一捋,邏輯上是否有問題?要求的輸出信息是什么
你提供的代碼好像不完整,后面程序?qū)崿F(xiàn)中的ab等對象不知道哪里來的。

2017年5月8日 18:27
編輯回答
憶當年

想象一下e.child.forEach遍歷到最后一個元素會是什么樣子。。

2018年7月12日 07:17
編輯回答
初心
var c = a.filter(e => {
  let index = b.findIndex(f => e.name === f.name)
  if (index === -1) return false
  let child2 = b[index].child
  e.child = e.child.filter(g => {
    let index = child2.findIndex(h => g.name === h.name)
    return index !== -1
  })
  return true
})
2018年3月6日 20:40