JavaScript/VueJS:检查数组是否包含具有特定值的元素的对象

SPQ*_*Inc 7 javascript vue.js

我想解决这个问题:

我有一个包含名为的属性的Object specs.此属性包含ArrayObjects所有的有2个属性:

  • 名称

所以我的目标是这样的:

Object
-Title
-Date
-Specs [Array]
-- [0] Name: "Power"
-- [0] Value: 5
-- [1] Name: "Weight"
-- [1] Value: 100
Run Code Online (Sandbox Code Playgroud)

所以 - 现在我想检查一下,如果我的Specs-Array包含一个名为"Power"的项目.如果是这种情况,我想使用此元素的值.

我怎么解决这个问题?

Dee*_*eep 14

您可以根据name属性过滤数组,并检查过滤器是否返回结果数组,如果是,则可以将其与index一起使用以获取值.

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)
Run Code Online (Sandbox Code Playgroud)


Vin*_*uis 5

考虑主要对象名称是objTemp

你可以做

var arrR = objTemp.Specs.filter(function(ele){
   return (ele.Name == "Power")
});

if(arrR.length)
  //has prop
else
  // no prop
Run Code Online (Sandbox Code Playgroud)