Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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/Jquery在数组中查找对象_Javascript_Jquery - Fatal编程技术网

使用Javascript/Jquery在数组中查找对象

使用Javascript/Jquery在数组中查找对象,javascript,jquery,Javascript,Jquery,我需要使用以下函数在数据数组中循环,并在函数找到具有特定值的对象时返回“True”。但是,当我启动函数时,它返回以下错误消息: Cannot read property 'isTrue' of undefined 你能看一下并解释一下我做错了什么吗 var数据=[ { 类别:“1”, 价值观:[ {key:“valueToGet1”,isTrue:“true”}, {key:“valueToGet2”,isTrue:“false”} ] }, { 类别:“2”, 价值观:[ {key:“va

我需要使用以下函数在数据数组中循环,并在函数找到具有特定值的对象时返回“True”。但是,当我启动函数时,它返回以下错误消息:

Cannot read property 'isTrue' of undefined
你能看一下并解释一下我做错了什么吗

var数据=[
{
类别:“1”,
价值观:[
{key:“valueToGet1”,isTrue:“true”},
{key:“valueToGet2”,isTrue:“false”}
]
},
{
类别:“2”,
价值观:[
{key:“valueToGet3”,isTrue:“false”},
{key:“valueToGet4”,isTrue:“true”}
]
}
]
var getValue=函数(值){
var结果;
$。每个(数据、功能(i、项){
结果=$.grep(项值,函数(e){
返回e.key==值;
})[0];
})
返回result.isTrue==“true”;
}
log(getValue('valueToGet4')//应该返回true
您可以使用

var数据=[{
类别:“1”,
价值观:[{
键:“valueToGet1”,
isTrue:“真的”
}, {
键:“valueToGet2”,
isTrue:“假”
}]
}, {
类别:“2”,
价值观:[{
键:“valueToGet3”,
isTrue:“假”
}, {
键:“valueToGet4”,
isTrue:“真的”
}]
}]
var getValue=函数(值){
返回数据。一些(d=>{
返回d.values.some(v=>{
返回v.key==value&&v.isTrue==“true”
})
});
}
log(getValue('valueToGet4')//应该返回true
您可以使用

var数据=[{
类别:“1”,
价值观:[{
键:“valueToGet1”,
isTrue:“真的”
}, {
键:“valueToGet2”,
isTrue:“假”
}]
}, {
类别:“2”,
价值观:[{
键:“valueToGet3”,
isTrue:“假”
}, {
键:“valueToGet4”,
isTrue:“真的”
}]
}]
var getValue=函数(值){
返回数据。一些(d=>{
返回d.values.some(v=>{
返回v.key==value&&v.isTrue==“true”
})
});
}
log(getValue('valueToGet4')//应该返回true

使用Reduce排除您不想要的项目:

var getValue = function (value) {
  var result = data.filter(function (item) {
    result = item.values.filter(function (e) {
        return e.key == value && e.isTrue == 'true';
    });
     return result.length > 0 
  })
  return result.length > 0 ;
} 

使用“减少”排除不需要的项目:

var getValue = function (value) {
  var result = data.filter(function (item) {
    result = item.values.filter(function (e) {
        return e.key == value && e.isTrue == 'true';
    });
     return result.length > 0 
  })
  return result.length > 0 ;
} 

参考链接,错误是说
结果
未定义,因此我猜您对
数据
对象有一些问题。是否尝试将整个数组作为参数传递
getValue('valueToGet4',data)
和定义:
var getValue=function(value,array)
参考链接错误说明
result
未定义,因此我猜您对
数据
对象有一些问题。是否尝试将整个数组作为参数传递
getValue('valueToGet4',data)
和定义:
var getValue=function(value,array)
谢谢,这是最合适的!谢谢,最合适的!感谢另一个解决方案,肯定会考虑使用这个感谢另一个解决方案,一定会考虑使用这个