Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 排序列表中标题的排序问题_Javascript_Sorting_Html Lists - Fatal编程技术网

Javascript 排序列表中标题的排序问题

Javascript 排序列表中标题的排序问题,javascript,sorting,html-lists,Javascript,Sorting,Html Lists,我正在构建一个web应用程序,在该应用程序中,我从如下对象中构建一个排序列表: {head:{subhead:[列出项目]、subhead:[列出项目]},head:{subhead:[列出项目]} 我的问题是,我必须确保标题和副标题总是按照一定的顺序排列。由于以后可能添加的标题和副标题也需要遵循此顺序,这一点变得复杂。因此,我唯一能想到的通知解析器顺序的方法是给它一些如下数据: {总目:[总目1,总目2,总目3],分目:{总目1:[分目1,分目1,分目2],总目2:[分目2,分目2,分目2,分

我正在构建一个web应用程序,在该应用程序中,我从如下对象中构建一个排序列表:
{head:{subhead:[列出项目]、subhead:[列出项目]},head:{subhead:[列出项目]}

我的问题是,我必须确保标题和副标题总是按照一定的顺序排列。由于以后可能添加的标题和副标题也需要遵循此顺序,这一点变得复杂。因此,我唯一能想到的通知解析器顺序的方法是给它一些如下数据:
{总目:[总目1,总目2,总目3],分目:{总目1:[分目1,分目1,分目2],总目2:[分目2,分目2,分目2,分目3]}


但这让我觉得,原始数据结构中的数据过于冗长和重复

您最好使用一个数组(或您自己的结构),因为您希望对其进行排序。您自己的结构可能如下所示:

function Head(name) {
  this.name = name;
  this.arr = [];
}
因此,与结构不同:

var thing = {
  food: {fruit: [apples, oranges], vegetables: [carrots, peas]},
  animals: {domestic: [cat, dog], wild: [lion, bear]}
}
你可以这样做:

var thing = [new Head('food'), new Head('animals')]
然后:

等等


当然,您不必创建类,因为您实际上可以在javascript中将属性附加到数组。但是制作数据结构会有点麻烦。

这似乎有点复杂。也许你应该告诉我们你试图解决的问题的类型,也许我们可以这样建议一个更好的数据结构。我试图创建一系列按标题和副标题排序的列表(e.x.{食物:{水果:[苹果,桔子],[蔬菜:[胡萝卜,豌豆]},动物:{家养:[猫,狗],[野生:[狮子,熊]})标题和副标题按照一定的顺序排列。所以我总是希望食物排在动物之前,在食物中我希望蔬菜排在水果之前。我想我的问题是因为关联数组(本例中的对象)本质上是无序的,所以我需要一种方式来对它们进行排序,或者用另一种方式来表达我的数据。非常感谢!这个对象结构可以用数组和对象复制,比如:{head:[{subhead:[items]},{subhead:[items]}},这就解决了JSON序列化的问题!
thing[0].arr.push('apples'); 
thing[0].arr.push('oranges');