Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
313 views
in Technique[技术] by (71.8m points)

js 求助该怎么删除这种类型的对象数组

image

这是返回的数据res.rows,现在我需要根据判断删除modulesG里的其中一个数组(对象),用name做判断,假设res.rows[i].modulesG[i].name == 'test'的话,就删除这个modulesG[i],其他不变,然后返回出删除出来后的数据。。

讲的可能有点绕,在这里先谢谢各位大哥大姐的解答了,感激不尽,如果讲的太绕了我也会耐心解释清楚的,麻烦你们了,谢谢!

以下是我自己写的代码,但是没有用,是错误的代码

    for (let i = 0; i < res.rows.length; i++)?{

         for (let j = 0; j < res.rows[i].modulesG.length; j++)?{

               if (res.rows[i].modulesG[j].name == 'test')?{

                   res.rows[i].modulesG[j].splice(j, 1);

                 }

           }

    }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
function _filter(data)?{
    return data.map(i => {
         const { modulesG = []?} = i
         const filterModuleG = modulesG.reduce((acc, cur) => {
             const isTarget = cur.every(j => j.name !== 'test')
             return isTarget ? [
                 ...acc,
                 cur
             ] : acc
         },?[])
         return {
             ...i,
             modulesG: filterModuleG
         }
    })
}

_filter(res.rows || [])

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...