SPQRInc SPQRInc - 1 month ago 12
Javascript Question

JavaScript/VueJS: Check if an Array contains an object with an element that has specific value

I would like to solve this problem:

I got an Object that contains a property named

specs
. This property contains an
Array
of
Objects
that all have 2 properties:


  • name

  • value



So my object is like this:

Object
-Title
-Date
-Specs [Array]
-- [0] Name: "Power"
-- [0] Value: 5
-- [1] Name: "Weight"
-- [1] Value: 100


So - now I would like to check, if my Specs-Array contains an item that has the name "Power". If this is the case, I would like to use the value of this element.

How can I solve this?

Answer Source

You can filter the array based on the name attribute and check if the filter returns a result array , if yes then you can use it with index to get the value.

var data = {specs:[{Name:"Power",Value:"1"},{
  Name:"Weight",Value:"2"},{Name:"Height",Value:"3"}]}


var valObj = data.specs.filter(function(elem){
              if(elem.Name == "Power") return elem.Value; 
           });

if(valObj.length > 0)
console.log(valObj[0].Value)