Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript/VueJS:检查数组是否包含具有特定值的元素的对象_Javascript_Vue.js - Fatal编程技术网

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

JavaScript/VueJS:检查数组是否包含具有特定值的元素的对象,javascript,vue.js,Javascript,Vue.js,我想解决这个问题: 我得到了一个包含名为specs的属性的对象。此属性包含对象的数组,这些对象都有两个属性: 名字 价值观 所以我的目标是这样的: Object -Title -Date -Specs [Array] -- [0] Name: "Power" -- [0] Value: 5 -- [1] Name: "Weight" -- [1] Value: 100 所以-现在我想检查一下,我的Specs数组是否包含一个名为“Power”的项。如果是这种情况,我想使用这个元素的值 如何解

我想解决这个问题:

我得到了一个包含名为
specs
的属性的对象。此属性包含
对象的
数组
,这些对象都有两个属性:

  • 名字
  • 价值观
所以我的目标是这样的:

Object
-Title
-Date
-Specs [Array]
-- [0] Name: "Power"
-- [0] Value: 5
-- [1] Name: "Weight"
-- [1] Value: 100
所以-现在我想检查一下,我的Specs数组是否包含一个名为“Power”的项。如果是这种情况,我想使用这个元素的值


如何解决这个问题?

考虑主要对象名是objTemp

$.each(object.Specs,function(index,obj){
if(obj.Name === "Power")
var myVar = obj.Value
});
你能行

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

if(arrR.length)
  //has prop
else
  // no prop
您可以在数组上使用方法,该方法将根据您的条件返回true或false,如下所示:

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

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

您可以基于name属性筛选数组,并检查筛选器是否返回结果数组,如果是,则可以将其与索引一起使用以获取值

var data={specs:[{Name:“Power”,Value:“1”}{
名称:“重量”,值:“2”},{名称:“高度”,值:“3”}
var valObj=数据规格过滤器(函数(elem){
if(elem.Name==“Power”)返回元素值;
});
如果(valObj.length>0)

console.log(valObj[0].Value)
如果使用'some'而不是'each',则一旦找到有效的obj,循环将停止。谢谢,我直到现在才知道。非常有用虽然此代码可以回答问题,但提供有关此代码为什么和/或如何回答问题的附加上下文可以提高其长期价值。好的-如果
arrR
为真,我如何访问
ele.value
?在这种情况下,我必须获取数组元素的索引,对吗?@SPQRInc arrR是一个名为“Power”的对象数组,因此您可以在arrR上迭代,并以arrR[0]的形式获取值。值等等您好,非常感谢您的回答。现在,
doesPowerExist
将是
true
false
,对吗?我如何访问
其中
spec.name=“Power”
?@SPQRInc我已修改代码,
powerIndex
将是相应对象的索引,如果
doesPowerExist
为真,则使用此选项。