Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 基于对象的数组属性内的值筛选数组中的特定对象_Javascript_Arrays - Fatal编程技术网

Javascript 基于对象的数组属性内的值筛选数组中的特定对象

Javascript 基于对象的数组属性内的值筛选数组中的特定对象,javascript,arrays,Javascript,Arrays,我试图过滤数组中的对象,这些对象包含数组属性中的特定值。 例如,以下是我的对象数组: [ {_id: 1, value: ['Row', 'Column']}, {_id: 2, value: []}, {_id: 3, value: ['Row']}, {_id: 4}, {_id: 5, value: ['Column']} ] 我需要它返回值数组中具有“行”的所有对象,即结果应为: [ {_id: 1, value: ['Row', 'Column']},

我试图过滤数组中的对象,这些对象包含数组属性中的特定值。 例如,以下是我的对象数组:

[
  {_id: 1, value: ['Row', 'Column']}, 
  {_id: 2, value: []}, 
  {_id: 3, value: ['Row']}, 
  {_id: 4},
  {_id: 5, value: ['Column']}
]
我需要它返回值数组中具有“行”的所有对象,即结果应为:

[
  {_id: 1, value: ['Row', 'Column']}, 
  {_id: 3, value: ['Row']},
]
下面是我执行此操作的方法,但它返回null:

findRowValues() {
    let groupObj = [
       {_id: 1, value: ['Row', 'Column']}, 
       {_id: 2, value: []}, 
       {_id: 3, value: ['Row']}, 
       {_id: 4},
       {_id: 5, value: ['Column']}
    ];
    
    return groupObj.filter(function (obj) {
          return (
            obj.value &&
            obj.value.find(o => { o === 'Row' })
          )
    });
}

这是由于
find
的回调中有
{}
。可以删除这些内容以获得隐式返回,或者您需要使用
return
关键字显式返回。我使用了基于箭头函数的隐式返回

让groupObj=[
{{u id:1,值:['Row','Column']},
{u id:3,值:[]},
{{u id:5,值:['Row']},
{u id:7},
{{u id:8,值:['Column']}
];
函数findRowValues(groupObj){
返回组对象过滤器(函数(obj){
返回(
目标价值&&
obj.value.find(o=>o=='Row')
)
});
}

console.log(findRowValues(groupObj))
使用
解构
包含
方法

函数findRowValues(){
常量groupObj=[
{{u id:1,值:[“行”,“列”]},
{u id:2,值:[]},
{{u id:3,值:[“行”]},
{u id:4},
{{u id:5,值:[“列”]},
];
返回groupObj.filter(({value=[]})=>value.includes(“行”);
}

log(findRowValues())
谢谢,很高兴知道!