【发布时间】:2019-06-06 14:48:13
【问题描述】:
我很难找到一种优雅而有效的方法来处理 nodeJS 中的不规则嵌套数组/对象。不规则是指可以具有 1、2、3 或更多维度的数组/对象。
例如,两种不同的情况:
第一种情况:
"head": {
"firstElement": {
"Choice1": [
"Some text",
"some text"
],
"Choice2": [
"Some text",
"Some text"
]
},
"SecondElement": [
"Some text",
"Some text"
]
}
第二种情况:
"head": {
"firstElement": [
"Some text",
"Some text"
],
"secondElement": [
"Some text",
]
}
我想要的是能够提取所有这些,保留除我不想要的“选择”之外的所有内容,最后在 div 中清楚地打印出来。
预期:
<div>
<h1>FirstElement</h1>
<h2>Choice#</h2>
<p>Some text</p>
<p>Some text</p>
<h1>SecondElement</h1>
<p>Some text</p>
<p>Some text</p>
</div>
HTML 中的嵌套方面不是问题,我只是在算法上苦苦挣扎。
【问题讨论】:
-
欢迎来到 Stack Overflow。我不清楚您要在这里实现什么...您是否要呈现反映数据结构的 html?
-
完全正确,但对最终结果进行了后期处理
choices#并几乎按原样显示(只需将 json 形式转换为<h1>、<h2>、<p>等等。我试过了使用Object.keys()和Object.values来获取和存储所有内容并使用{{#with}}和{{#each}}进行打印。但是由于数据不规则,它会产生错误。也许我可以通过创建一个包含对象的数组来做到这一点一个键和关联的值以及最终嵌套的键/值,并在其上应用{{#each}}。 -
如果你使用 React,我认为这很容易做到。从未对 Blaze 感兴趣,因此无法对此发表评论。你总是可以放入一个 React 组件来做到这一点:)
-
感谢您的提示!我现在从来没有使用过 React,但我会研究一下,听到关于它的好消息。我想是时候学习了 ;) 我会尝试用 Blaze 的方式来做,但如果它很乱,我会尝试使用 React
-
一开始我并不热衷于 React,因为它将 js 和标记混搭在同一个文件中,但实际上它是一个奖励,因为您在两者之间没有界限。一旦你理解了语法,你就可以设计任何你喜欢的东西——我认为这是你遇到复杂问题并且模板系统不够灵活的情况下所需要的。
标签: javascript arrays node.js meteor nested