js 如何把这种对象里的modules里的内容放进新的一个对象里

发布于 2022-09-12 12:56:32 字数 464 浏览 22 评论 0

image

我需要将这个对象里的modules里的内容,全部提取出来,然后放进一个新的对象里,在这里先谢谢各位大哥大姐的解答了,小弟我表达问题可能比较不清晰,如果大神们因为我表达不清晰有没懂得地方请问一下我我在努力解答!

        let rowsu = [];
        for (let i = 0; i < res.rows.length; i++) {
            rowsu.push(res.rows[i].modules)
        }
        console.log('rowsu',rowsu)

这样子写最终效果是
image
我需要的效果是这13个数据都在一个对象里,没有分012这样子

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

薔薇婲 2022-09-19 12:56:32
let result = {}; 
[{modules:[{a:2}]},{modules:[{b:3}]}].reduce((a,b) => a.modules ? [...a.modules,...b.modules]:[...a,...b.modules],[]).forEach(item => {result = {...result, ...item}})
//console.log(result); => {a:2,b:3}
const result1 = [{modules:[{a:2}]},{modules:[{b:3}]}].reduce((a,b) => a.modules ? [...a.modules,...b.modules]:[...a,...b.modules],[])
//console.log(result1); => [{a:2},{b:3}]
酒绊 2022-09-19 12:56:32

感觉你的意思应该是把modules每个子项提取出来组成一个新数组,如果是这样下面代码应该可以

let arr = [];
let row = [
{ modules: [{a: 1, b: 2}] },
{ modules: [{c: 1, d: 2}] }
];
row.map(({modules}, index) => arr.push(...modules));
console.log(arr);
向地狱狂奔 2022-09-19 12:56:32

如你所愿:

const rowsu = rows.length && rows.reduce((pre,current) => {
    const modules = current.modules
    if (modules && Array.isArray(modules) && modules.length) {
        pre = pre.concat(modules)
    }
},[]
)

并加上了长度检查、非空检查与数组类型检查(~ ̄▽ ̄)~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文