Sort an object array by custom order

后端 未结 5 2315
名媛妹妹
名媛妹妹 2020-12-03 19:45

I have an array of objects which have a property called \'CODE\'.

[
  {
   ID: 168,
   NAME: \"First name\",
   CODE: \"AD\"
  },
  {
   ID: 167,
   NAME: \"         


        
5条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-03 20:26

    For huge arrays, I suggest to use an object for the indices.

    var array = [{ ID: 168, NAME: "First name", CODE: "AD" }, { ID: 167, NAME: "Second name", CODE: "CC" }, { ID: 169, NAME: "Third name", CODE: "CCM" }, { ID: 170, NAME: "Fourth name", CODE: "CR" }],
        item_order = ["CCM", "CR", "AD", "CC"],
        order = item_order.reduce((r, k, v) => Object.assign(r, { [k]: v }), {});
    
    array.sort((a, b) => order[a.CODE] - order[b.CODE]);
    
    console.log(array);
    .as-console-wrapper { max-height: 100% !important; top: 0; }

提交回复
热议问题