【发布时间】:2018-10-11 17:25:08
【问题描述】:
我正在尝试更深入地研究 JavaScript 和
遇到了一个独特的场景,其中数据以一种方式呈现,但显示依赖于指示父级组织的子属性。 (* 有这个词吗?)
如何呈现这些数据以便按“表格”排列。而且也许它不是关于反转数据,而是创建某种关系。
结果应该是一个克隆。不改变原始数据。
纯 JavaScript 或 _.lodash。
一个好的答案会建议处理数据的方法,以便它可以通过 forms.name 呈现。
一个极好的答案将演示如何(显示代码)使用 forms.name 操作数据。
鉴于此方法中呈现的原始数据。
parent : {
childOne: {
canHide : true,
canStop : false,
forms : [
{name: 'pathway 1', enabled: true},
{name: 'pathway 2', enabled: false},
{name: 'pathway 3', enabled: false}
]
},
childTwo: {
canHide : true,
canStop : false,
forms : [
{name: 'pathway 1', enabled: true},
{name: 'pathway 2', enabled: false},
{name: 'pathway 5', enabled: false},
{name: 'pathway 7', enabled: false}
]
}
},
我想弄清楚的是,我将如何呈现数据更像这样?
注意:child.forms.name 可能包含空格。
newParent : {
pathway 1 : {
childOne: { enabled : true },
childTwo: { enabled : false }
},
pathway 2 : {
childOne: { enabled : false },
childTwo: { enabled : false }
},
pathway 3 : {
childOne: { enabled : true },
},
pathway 5 : {
childTwo: { enabled : false }
},
pathway 7 : {
childTwo: { enabled : false }
}
},
我不完全确定数据的结构应该是这样的。
我正在努力学习更多 JavaScript。
我认为显示器的外观是这样的
Pathway 1
childOne . [checkbox] => enabled : true|false
childTwo . [checkbox] => enabled : true|false
...
Pathway 7
childTwo . [checkbox] => enabled : true|false
到目前为止我已经尝试过:
我根据“父”对象中 forms.name 的长度做了一个 for 循环。 将每个 forms.name 推入一个新数组。 使用 lodash uniq 只返回唯一的(去重数组)
从那里我在想必须有一种方法可以再次循环通过父级,创建一个新数组,其中每个子级(childOne、childTwo 等)都添加到唯一列表中的每个 form.name 下。
但是我仍然需要返回“启用”属性。
UGGGG一定有更好的办法吗? 我读了一些关于关系数据库的东西。 有没有这样的代码我不必重新发明轮子?
【问题讨论】:
-
你应该分享你已经尝试过的代码! :)
标签: javascript arrays filter lodash