Home > Blockchain >  Print object that matches value in an array
Print object that matches value in an array

Time:03-23

I have an the following array of items:

[
{
  url: "www.google.com",
  name: "name1"
},
{
  url: "www.google.com2",
  name: "name1"
},
{
  url: "www.google.com3",
  name: "name1"
}
]

and a variable:

let url = "www.google.com2"

How would I check if the variable exists in the array, and if it exists, how would I print the specific object that marches the variable?

I am able to check if the variable exists in the array, but how would I print the specific object that has the same url as the variable?

CodePudding user response:

  • you can loop though an array via forEach method
  • and add if condition to check if url is matching and inside condition console log entire(found) object

const input = [
{
url: "www.google.com",
name: "name1"
},
{
url: "www.google.com2",
name: "name1"
},
{
url: "www.google.com3",
name: "name1"
}
]


let url = "www.google.com2"

input.forEach(object => {
  if(object.url === url) {
  console.log(object)
  }
})

  • or if would like to find only one element in the array

  • you can use find method

  • also you can store found element in the variable

const input = [
{
url: "www.google.com",
name: "name1"
},
{
url: "www.google.com2",
name: "name1"
},
{
url: "www.google.com3",
name: "name1"
}
]


let url = "www.google.com2"

const foundObject = input.find(object => object.url === url)

console.log('foundObject', foundObject)

CodePudding user response:

You can use JS filter()function for that. Filter fives you all matches. If you sure that your input array contains only once this url then you can use: r[0] ?? null; Then you will get only the object.

const input = [
  {
  url: "www.google.com",
  name: "name1"
  },
  {
  url: "www.google.com2",
  name: "name1"
  },
  {
  url: "www.google.com3",
  name: "name1"
  }
]
const url = 'www.google.com2';
const r = input.filter(e => e.url === url);

console.log('result: ',r);
console.log('resultOne: ',r[0] ?? 'nothing found');

CodePudding user response:

If you want to print all the objects that contain the desired url you should go with @shutsman's answer.

If you are sure that there is only one object contained with the property (incase of an id or something) you could use:

const input = [
{
url: "www.google.com",
name: "name1"
},
{
url: "www.google.com2",
name: "name1"
},
{
url: "www.google.com3",
name: "name1"
}
]


let url = "www.google.com2"

console.log(input.find(obj => obj.url === url))
  • Related