Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

219
Views
Looping Objects Object to check isit the value same as my variable

can anyone show me on solve this js algorithm ? i am reaching nested objects object to check isit the categories value same as my variable and if true return those object match the value back. not sure if i am using the right way, but also not sure how to return the whole objects back.

objects

const data = [
    {
      "id": 799,
      "name": "Ship Your Idea",
      "slug": "ship-your-idea-22",
      "permalink": "https://example.com/product/ship-your-idea-22/",
       "categories": [
        {
          "id": 9,
          "name": "Clothing",
          "slug": "clothing"
        }
      ]
    },
    {
      "id": 794,
      "name": "Premium Quality",
      "slug": "premium-quality-19",
      "permalink": "https://example.com/product/premium-quality-19/",
      "categories": [
        {
          "id": 14,
          "name": "T-shirts",
          "slug": "t-shirts"
        }
      ]
    },
    {
      "id": 795,
      "name": "Premium Quality2",
      "slug": "premium-quality-193",
      "permalink": "https://example.com/product/premium-quality-193/",
      "categories": [
        {
          "id": 15,
          "name": "Clothing",
          "slug": "clothing"
        }
      ]
    }
  ]

my functions

 const brand = 'clothing';

  function fliterProductByCategorly(obj, brand){
    // 1.loop through each objects object
    // 2.loop through object and get categorie
    // 3.categorie filter get slug
    // 4.check if slug value are same value as global slug, if do only return object that match the brand value.

    return Object.entries(obj).filter(([, {categories}]) => Object.entries(categories).filter(([, {slug}]) => slug == brand ))
  }

  console.log(fliterProductByCategorly(data, brand))

sample : https://stackblitz.com/edit/js-pizeq4

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Assuming that categories array has only 1 element

const data = [
    {
      "id": 799,
      "name": "Ship Your Idea",
      "slug": "ship-your-idea-22",
      "permalink": "https://example.com/product/ship-your-idea-22/",
       "categories": [
        {
          "id": 9,
          "name": "Clothing",
          "slug": "clothing"
        }
      ]
    },
    {
      "id": 794,
      "name": "Premium Quality",
      "slug": "premium-quality-19",
      "permalink": "https://example.com/product/premium-quality-19/",
      "categories": [
        {
          "id": 14,
          "name": "T-shirts",
          "slug": "t-shirts"
        }
      ]
    },
    {
      "id": 795,
      "name": "Premium Quality2",
      "slug": "premium-quality-193",
      "permalink": "https://example.com/product/premium-quality-193/",
      "categories": [
        {
          "id": 15,
          "name": "Clothing",
          "slug": "clothing"
        }
      ]
    }
  ]
  
  const brand = 'clothing';

  function fliterProductByCategorly(obj, brand){
    return obj.filter(e => e.categories[0].slug===brand)
  }

  console.log(fliterProductByCategorly(data, brand))
.as-console-wrapper { max-height: 100% !important; top: 0; }

Possible implementation using reduce if categories contains more than 1 element.

const data = [
    {
      "id": 799,
      "name": "Ship Your Idea",
      "slug": "ship-your-idea-22",
      "permalink": "https://example.com/product/ship-your-idea-22/",
       "categories": [
        {
          "id": 9,
          "name": "Clothing",
          "slug": "clothing"
        }
      ]
    },
    {
      "id": 794,
      "name": "Premium Quality",
      "slug": "premium-quality-19",
      "permalink": "https://example.com/product/premium-quality-19/",
      "categories": [
        {
          "id": 14,
          "name": "T-shirts",
          "slug": "t-shirts"
        }
      ]
    },
    {
      "id": 795,
      "name": "Premium Quality2",
      "slug": "premium-quality-193",
      "permalink": "https://example.com/product/premium-quality-193/",
      "categories": [
        {
          "id": 16,
          "name": "T-shirts",
          "slug": "t-shirts"
        },
        {
          "id": 15,
          "name": "Clothing",
          "slug": "clothing"
        }
      ]
    }
  ]
  
  const brand = 'clothing';

  function fliterProductByCategorly(obj, brand){
    return obj.reduce((acc,curr) => {
        if (curr.categories.filter(e => e.slug===brand).length>0){
        acc.push(curr)
      }
      return acc;
    },[])
  }

  console.log(fliterProductByCategorly(data, brand))
.as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!