繁体   English   中英

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

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

我想解决这个问题:

我有一个包含名为specs的属性的Object。 此属性包含一个Objects Array ,它们都具有2个属性:

  • 名称

所以我的目标是这样的:

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

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

我怎么解决这个问题?

您可以根据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) 

考虑主要对象名称是objTemp

你可以做

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

if(arrR.length)
  //has prop
else
  // no prop
$.each(object.Specs,function(index,obj){
if(obj.Name === "Power")
var myVar = obj.Value
});

你可以在数组上使用一些方法,它会返回true或false,具体取决于你的条件,如下所示:

var powerIndex
var doesPowerExist = yourObj.specs.some((spec, index) => {
   var powerIndex = index
   return spec.name == "Power"
})

您可以使用doesPowerExist var来决定是否使用此元素的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM