我希望有一种自动收报机或信息显示系统。
基本上我想要一个标头数组。例如:
var Headers = [
["Header 1"],
["Header 2"],
["Header 3"],
["Header 4"]
];
然后为与初始数组相关的子标题有一个数组或多个数组。例如:
var Messages1 = [
["Message1 1"],
["Message1 2"],
["Message1 3"]
];
var Messages2 = [
["Message2 1"],
["Message2 2"],
["Message2 3"]
];
// etc etc etc
我想要实现的是有一个div显示标题,另一个div循环通过与该标题相关的消息。然后转到下一个标题,然后显示与该标题相关的消息。希望这是有道理的。
如果提供了正确的解决方案,阵列的结构可能会改变。
我确定它可能已经完成,但我无法在网上看到一个例子。
即使网上有一个,我也很乐意尝试对代码进行逆向工程。
非常感谢任何帮助。
此致
jmcall10
答案 0 :(得分:1)
我不确定我是否完全了解您的要求,但您是否正在寻找类似的内容:
var headers = [
{
header: 'Header1',
subheaders: [
'Subheader1',
'Subheader2',
'...'
]
},
{
header: 'Header2',
subheaders: [
'Subheader3',
'Subheader4',
'...'
]
}
]
如果您担心子标题的重复,可以将它们移动到单独的对象:
var subheaders = {
'subheader1': 'Subheader1',
'subheader2': 'Subheader2',
'subheader3': 'Subheader3',
'subheader4': 'Subheader4',
}
并通过对象键在headers数组中引用它们:
var headers = [
{
header: 'Header1',
subheaders: [
'subheader1',
'subheader2',
'...'
]
},
{
header: 'Header2',
subheaders: [
'subheader1',
'subheader2',
'...'
]
}
]
重要说明:请记住,您应该为子标头对象的键设置正确的命名约定。 subheader1
,subheader2
可能是一个糟糕的选择,即使只在一个例子中使用。 :)
修改强>
循环使用第一个版本:
headers.forEach(function (item) {
console.log(item.header);
item.subheaders.forEach(function (subheader) {
console.log(subheader);
});
});
第二个版本也非常相似:
headers.forEach(function (item) {
console.log(item.header);
item.subheaders.forEach(function (subheaderKey) {
if (subheaders.hasOwnKey(subheaderKey)) {
console.log(subheaders[subheaderKey]);
}
});
});
干杯。