Company logo
  • Jobs
  • Bootcamp
  • About Us
  • For professionals
    • Home
    • Jobs
    • Courses
    • Questions
    • Teachers
    • Bootcamp
  • For business
    • Home
    • Our process
    • Plans
    • Assessments
    • Payroll
    • Blog
    • Calculator

0

57
Views
Search inside a JSON Javascript

I have a problem concern search JSON string and i have JSON string

{"userDetail":[
 {
   "Name": "Scottic Mangry",
   "Age" : "12", 
 },
 {
   "Name": "Joneson Mangly",
   "Age" : "18", 
 },
 {
   "Name": "Saoyu Wang",
   "Age" : "15", 
 },
]}

And data search

let searchObj = "Mang"

I need a result

 {
   "Name": "Scottic Mangry",
   "Age" : "12", 
 },
 {
   "Name": "Joneson Mangly",
   "Age" : "18", 
 }

Any help or suggestions would be great!

7 months ago · Juan Pablo Isaza
3 answers
Answer question

0

Something like:

let data = {
    "userDetail":[
     {
       "Name": "Scottic Mangry",
       "Age" : "12", 
     },
     {
       "Name": "Joneson Mangly",
       "Age" : "18", 
     },
     {
       "Name": "Saoyu Wang",
       "Age" : "15", 
     },
    ]
}

let needle = "Mang";
let result = data['userDetail'].filter(el => el.Name.includes(needle));
console.log(result); 

needle is the string we are searching for inside the Name property of the data.userDetail object

includes is case sensitive, so if you want to match results regardless of case it's easiest to lowercase everything first

7 months ago · Juan Pablo Isaza Report

0

you can do it using Array.filter, Array.values and includes

const data = {"userDetail":[
 {
   "Name": "Scottic Mangry",
   "Age" : "12", 
 },
 {
   "Name": "Joneson Mangly",
   "Age" : "18", 
 },
 {
   "Name": "Saoyu Wang",
   "Age" : "15", 
 },
]}


const search = (data, search) => data.filter(d => Object.values(d).some(v => v.includes(search)))

console.log(search(data.userDetail, "Mang"))

7 months ago · Juan Pablo Isaza Report

0

As cmgchess say in comments Using filter and includes would do the job for you: to make it more declarative and readable I put it inside a function called findName

const objs = {
  "userDetail": [{
      "Name": "Scottic Mangry",
      "Age": "12",
    },
    {
      "Name": "Joneson Mangly",
      "Age": "18",
    },
    {
      "Name": "Saoyu Wang",
      "Age": "15",
    },
  ]
}

function findName(name) {
  return objs.userDetail.filter(user => user.Name.includes(name))
}
let searchObj = "Mang";
console.log(findName(searchObj));

7 months 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 job Plans Our process Sales
Legal
Terms and conditions Privacy policy
© 2023 PeakU Inc. All Rights Reserved.