Home > Net >  how to sort array of object in js by property i.ecategoryname' in my dataset in alphabetical or
how to sort array of object in js by property i.ecategoryname' in my dataset in alphabetical or

Time:08-16

Here is the list of data that should be sorted in alphabetical based of categoryName value using merger sort


    const filteritem = [
      {
        "categoryName": "admission",
        "rows": [
          {
            "uploaddate": "8/8/2022",
            "title": "binoddocs",
            "view": "https://firebasestorage.googleapis.com/v0/b/auth",
            "fullname": "bruno",
            "id": "B8QsXYVFH8fHt3PrBYUp"
          }
        ]
      },
      {
        "categoryName": "officialdocument",
        "rows":
          {
            "file": null,
            "uploadedby": "bruno",
            "uploaddate": "6/27/2022",
            "title": "sudhikchaadmission",
            "view": "https://firebasestorage.googleapis.com/v0/b/auth",
            "id": "Z27GLizWnYTJvLQyYRQt"
          },
          {
            "view": "https://firebasestorage.googleapis.com/v0/b/auth",
            "uploadedby":"bruno",
            "uploaddate":"6/27/2022",
            "title":"ankitadmission",
            "file":null,
            "id":"rmcbUrg9TpFhQh5RLqva"
          }
        ]
      },
      {
        "categoryName":"syallabus",
        "rows": [
          {
            "fullname":"bruno",
            "view":"https://firebasestorage.googleapis.com/v0/b/auth",
            "title":"sudhir",
            "uploaddate":"8/15/2022",
            "id":"hi7QEOlBzzVLZ1QHYqlk"
          }
        ]
      },
      {
        "categoryName":"Binodkhatricv",
        "rows": [
          {
            "title":"binodtry",
            "fullname":"bruno",
            "uploaddate":"8/15/2022",
            "view":"https://firebasestorage.googleapis.com/v0/b/auth",
            "id":"o4EtP1xkbWMk1icp4uNH"
          }
        ]

i can use filter and includes method to sort.. but i have to implement some types of algorithm in my project like{mergersort ,bubblesort,depthsearch etc}but for now i need to use mergesort*** The final result should be like this i have not included all the property inside the object here i think you got it ..


    filteritem=[
    {categoryName:"admission"...},
    {cateogryName:"Binodkhatricv"..},
    {categoryName:"officialdocument"...},
    {categoryName:"syallabus"...}
    ]```

CodePudding user response:

You can use sort I guess it's do want to try to do :

const filteritem = [
    {
      "categoryName": "admission",
      "rows": [
        {
          "uploaddate": "8/8/2022",
          "title": "binoddocs",
          "view": "https://firebasestorage.googleapis.com/v0/b/auth",
          "fullname": "bruno",
          "id": "B8QsXYVFH8fHt3PrBYUp"
        }
      ]
    },
    {
      "categoryName": "officialdocument",
      "rows":
        [{
          "file": null,
          "uploadedby": "bruno",
          "uploaddate": "6/27/2022",
          "title": "sudhikchaadmission",
          "view": "https://firebasestorage.googleapis.com/v0/b/auth",
          "id": "Z27GLizWnYTJvLQyYRQt"
        },
        {
          "view": "https://firebasestorage.googleapis.com/v0/b/auth",
          "uploadedby":"bruno",
          "uploaddate":"6/27/2022",
          "title":"ankitadmission",
          "file":null,
          "id":"rmcbUrg9TpFhQh5RLqva"
        }
      ]
    },
    {
      "categoryName":"syallabus",
      "rows": [
        {
          "fullname":"bruno",
          "view":"https://firebasestorage.googleapis.com/v0/b/auth",
          "title":"sudhir",
          "uploaddate":"8/15/2022",
          "id":"hi7QEOlBzzVLZ1QHYqlk"
        }
      ]
    },
    {
      "categoryName":"Binodkhatricv",
      "rows": [
        {
          "title":"binodtry",
          "fullname":"bruno",
          "uploaddate":"8/15/2022",
          "view":"https://firebasestorage.googleapis.com/v0/b/auth",
          "id":"o4EtP1xkbWMk1icp4uNH"
        }
      ]
    }];

    let sorted = filteritem.sort((a, b) => (a < b ? -1 : 1))
    console.log(sorted)

CodePudding user response:

You need to use localeCompare to sort the string, but after toLowerCase to ignore case sensitivity.

const filteritem = [
  {
    "categoryName": "admission",
    "rows": [
      {
        "uploaddate": "8/8/2022",
        "title": "binoddocs",
        "view": "https://firebasestorage.googleapis.com/v0/b/auth",
        "fullname": "bruno",
        "id": "B8QsXYVFH8fHt3PrBYUp"
      }
    ]
  },
  {
    "categoryName": "officialdocument",
    "rows": [
      {
        "file": null,
        "uploadedby": "bruno",
        "uploaddate": "6/27/2022",
        "title": "sudhikchaadmission",
        "view": "https://firebasestorage.googleapis.com/v0/b/auth",
        "id": "Z27GLizWnYTJvLQyYRQt"
      },
      {
        "view": "https://firebasestorage.googleapis.com/v0/b/auth",
        "uploadedby":"bruno",
        "uploaddate":"6/27/2022",
        "title":"ankitadmission",
        "file":null,
        "id":"rmcbUrg9TpFhQh5RLqva"
      }
    ]
  },
  {
    "categoryName":"syallabus",
    "rows": [
      {
        "fullname":"bruno",
        "view":"https://firebasestorage.googleapis.com/v0/b/auth",
        "title":"sudhir",
        "uploaddate":"8/15/2022",
        "id":"hi7QEOlBzzVLZ1QHYqlk"
      }
    ]
  },
  {
    "categoryName":"Binodkhatricv",
    "rows": [
      {
        "title":"binodtry",
        "fullname":"bruno",
        "uploaddate":"8/15/2022",
        "view":"https://firebasestorage.googleapis.com/v0/b/auth",
        "id":"o4EtP1xkbWMk1icp4uNH"
      }
    ]
  }
]

const result = filteritem.sort((a, b) => a.categoryName.toLowerCase().localeCompare(b.categoryName.toLowerCase()))

console.log(result)

  • Related