Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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 对json序列进行排序_Javascript_Html_Jquery_Json - Fatal编程技术网

Javascript 对json序列进行排序

Javascript 对json序列进行排序,javascript,html,jquery,json,Javascript,Html,Jquery,Json,我有一个json响应,我希望根据标签进行排序。是否可以根据标准的固定顺序排列json响应数据。是否希望按照定义的顺序排列任何所需的jsonlet order={“data”:[“test1”、“test2”、“test3”、“test4”、“test5”、“test6”、“test7”、“test8”]}(文本可能会有所不同).可以按顺序安排吗 let order={“data”:[“test1”、“test2”、“test3”、“test4”、“test5”、“test6”、“test7”、

我有一个json响应,我希望根据标签进行排序。是否可以根据标准的固定顺序排列json响应数据。是否希望按照定义的顺序排列任何所需的json
let order={“data”:[“test1”、“test2”、“test3”、“test4”、“test5”、“test6”、“test7”、“test8”]}
(文本可能会有所不同).可以按顺序安排吗

let order={“data”:[“test1”、“test2”、“test3”、“test4”、“test5”、“test6”、“test7”、“test8”]]
常量输入={
“数据报告”:[{
“数据”:[1,2,0,3],
“标签”:“用户2”,
“背景颜色”:“蓝色”
},
{
“数据”:[3,4,2,5],
“标签”:“test3”,
“背景色”:“a3eaae”
},
{
“数据”:[2,3,1,4],
“标签”:“test4”,
“背景色”:“#37bd11”
},
{
“数据”:[1,2,0,3],
“标签”:“test7”,
“背景色”:“#433”
},
{
“数据”:[1,2,0,3],
“标签”:“用户5”,
“背景色”:“a3eaae”
},
{
“数据”:[0,1,0,2],
“标签”:“test6”,
“背景色”:“1195bd”
},
{
“数据”:[0,1,0,2],
“标签”:“test1”,
“背景色”:“aeb5b7”
},
{
“数据”:[1,2,0,3],
“标签”:“test7”,
“背景颜色”:“粉色”
}
],
“周”:[“第1周”、“第2周”、“第3周”、“第4周”]
}
var sorted=input.data\u report.sort((项)=>{return order.data;});
控制台日志(已排序)

是的,您可以在数组上使用.sort方法

var sorted = input.data_report.sort((item)=>{return item.label;});

类似于这些内容的东西。

您可以通过
排序来实现这一点:

input={“数据报告”:[{“数据”:[1,2,0,3],“标签”:“测试2”,“背景色”:“蓝色”},{“数据”:[3,4,2,5],“标签”:“测试3”,“背景色”:“a3eaae”},{“数据”:[2,3,1,4],“标签”:“测试4”,“背景色”:“37bd11”,{“数据”:[1,2,0,3],“标签”:“测试7”,“背景色”:“测试3”,“背景色”:“数据”{,“标签”:“test5”,“backgroundColor”:“test1”,“backgroundColor”:“数据”:[0,1,0,2],“标签”:“test6”,“backgroundColor”:“1195bd”},{“数据”:[0,1,0,2],“标签”:“test1”,“backgroundColor”:“aeb5b7”},{“数据”:[1,2,0,3],“标签”:“test7”,“backgroundColor”:“粉色”},“周”:“第1周”,“第2周”,“第3周”,“第4周”};
input.data_report=input.data_report.sort((a,b)=>a.label.match(/\d+/)[0]-b.label.match(/\d+/)[0]);

console.log(input);
在附加到HTML之前,需要对JSON进行排序。我建议使用类似于
排序的函数


\uu.map(u.sortBy(json,'key'),'value');
(这个使用lodash)

请查看我更新后的预期字符串。我不想按字母顺序排列。我需要它在定义的json集合中,就像我一样mentioned@user3386779,您绝对可以这样做。我将编辑我的答案。@user3386779这是正确的答案,它不是按字母顺序排列的,而是按字符串中最后一个十进制数字排序的,因此它解决了您的问题问题,请投票回答此问题中没有JSON。JSON是一种文本格式。您在
输入中拥有的是一个具有两个属性的对象,这两个属性都是数组。您的意思是希望输出为,
{test1,user2,test3,test4,user5,test6,test,test8}
?我不确定是否了解您的问题。请编辑我的帖子并snippet@user3386779,您可以编辑问题并添加您想要的输出吗?不清楚输出应该是什么?这是否回答了您的问题?