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_Object_Categories - Fatal编程技术网

Javascript分类对象数组排序

Javascript分类对象数组排序,javascript,sorting,object,categories,Javascript,Sorting,Object,Categories,假设我有一个对象数组: let array = [ {id: 0, type: "Office" }, {id: 1, type: "Security" }, {id: 2, type: "Office" }, {id: 3, type: "Security" }, {id: 4, type: "Security" }, {id: 5, type:

假设我有一个对象数组:

let array = [

    {id: 0, type: "Office" },
    {id: 1, type: "Security" },
    {id: 2, type: "Office" },
    {id: 3, type: "Security" },
    {id: 4, type: "Security" },
    {id: 5, type: "Office" },
    {id: 6, type: "Agent" },
    {id: 7, type: "Security" }

];
我需要根据自定义分类序列集对其进行排序,即[“Office”、“Agent”、“Security”]以获得以下输出:

var array = [
    {id: 0, type: "Office" },
    {id: 2, type: "Office" },
    {id: 5, type: "Office" },
    {id: 6, type: "Agent" }
    {id: 1, type: "Security" },
    {id: 3, type: "Security" },
    {id: 4, type: "Security" },
    {id: 7, type: "Security" }
];
没有找到任何合适的解决方案。

您可以使用来获取排序顺序

let数组=[
{id:0,键入:“Office”},
{id:1,键入:“Security”},
{id:2,键入:“Office”},
{id:3,键入:“Security”},
{id:4,键入:“Security”},
{id:5,键入:“Office”},
{id:6,键入:“Agent”},
{id:7,键入:“Security”}
];
const order=[“办公室”、“代理”、“安全”]
sort((a,b)=>order.indexOf(a.type)-order.indexOf(b.type));
console.log(数组)可用于获取排序顺序

let数组=[
{id:0,键入:“Office”},
{id:1,键入:“Security”},
{id:2,键入:“Office”},
{id:3,键入:“Security”},
{id:4,键入:“Security”},
{id:5,键入:“Office”},
{id:6,键入:“Agent”},
{id:7,键入:“Security”}
];
const order=[“办公室”、“代理”、“安全”]
sort((a,b)=>order.indexOf(a.type)-order.indexOf(b.type));
console.log(数组)