Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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,我需要遍历一个对象数组来比较两个值。 这是我的阵列: const data = [{ "uid": "6448ae4a79", "title": "New Group", "slug": "new-group", "items": [ { "uid": "8602b1cf1f", "title": "N

我需要遍历一个对象数组来比较两个值。 这是我的阵列:

    const data = [{
            "uid": "6448ae4a79",
            "title": "New Group",
            "slug": "new-group",
            "items": [
              {
                "uid": "8602b1cf1f",
                "title": "New sub group",
                "slug": "new-sub-group",
                "items": [
                  {
                    "uid": "8b6f962ff1",
                    "_id": "5d9b453285a8982000b4a9e6",
                    "title": "fsds",
                    "choices": [
                      {
                        "uid": "a5ccb273a2",
                        "_id": "5d9b453285a8982000b4a9eb",
                        "type": null,
                        "text": "sd",
                        "label": null,
                        "value": null
                      },
                      {
                        "uid": "8ab0d45386",
                        "_id": "5d9b453285a8982000b4a9e8",
                        "type": null,
                        "text": "sdwewe",
                        "label": null,
                        "value": null
                      }
                    ]
                  },
                  {
                    "uid": "290db30b53",
                    "_id": "5d9b699185a8982000b4aa1d",
                    "title": "czxczxc",
                    "logic": {
                      "viewControl": [
                        {
                          "action": "lock",
                          "group": "6448ae4a79",
                          "subGroup": "8602b1cf1f",
                          "question": "8b6f962ff1",
                          "equalTo": "8ab0d45386"
                        }
                      ]
                    },
                    "choices": [
                      {
                        "uid": "3cce36d426",
                        "_id": "5d9b699185a8982000b4aa1f",
                        "type": 0,
                        "text": "wqewq",
                        "label": "dsfsd",
                        "value": null
                      }
                    ]
                  }
                ]
              }
            ]
   }]
我必须将items.items.logic.viewControl[0].equalTo与choices.uid进行比较。例如:“equalTo”:“8ab0d45386”=“uid”:“8ab0d45386”


我该怎么做?我尝试了filter、map和foreach,但如果您的目标是检查viewControl.equalTo(来自不同的项目)是选项之一,则我根本无法做到这一点,因此解决方案可能如下所示:

  • 检查所有项目并收集
    选项。uid
  • 检查所有视图控件并检查
    choices.uid
    是否存在
  • const数据=[{
    “uid”:“6448ae4a79”,
    “标题”:“新组”,
    “slug”:“新组”,
    “项目”:[
    {
    “uid”:“8602b1cf1f”,
    “标题”:“新分组”,
    “slug”:“新子组”,
    “项目”:[
    {
    “uid”:“8b6f962ff1”,
    “_id”:“5d9b453285a8982000b4a9e6”,
    “标题”:“消防队”,
    “选择”:[
    {
    “uid”:“a5ccb273a2”,
    “_id”:“5d9b453285a8982000b4a9eb”,
    “类型”:空,
    “文本”:“sd”,
    “标签”:空,
    “值”:空
    },
    {
    “uid”:“8ab0d45386”,
    “_id”:“5d9b453285a8982000b4a9e8”,
    “类型”:空,
    “文本”:“sdwewe”,
    “标签”:空,
    “值”:空
    }
    ]
    },
    {
    “uid”:“290db30b53”,
    “_id”:“5d9b699185a8982000b4aa1d”,
    “标题”:“czxczxc”,
    “逻辑”:{
    “视图控件”:[
    {
    “操作”:“锁定”,
    “组”:“6448ae4a79”,
    “分组”:“8602b1cf1f”,
    “问题”:“8b6f962ff1”,
    “equalTo”:“8ab0d45386”
    }
    ]
    },
    “选择”:[
    {
    “uid”:“3cce36d426”,
    “_id”:“5d9b699185a8982000b4aa1f”,
    “类型”:0,
    “文本”:“wqewq”,
    “标签”:“dsfsd”,
    “值”:空
    }
    ]
    }
    ]
    }
    ]
    }];
    // 1. 收集选项.uid
    const choicesUids={};
    data.forEach((d)=>{
    d、 items.forEach((i1)=>{
    i1.items.forEach((i2)=>{
    i2.choices.forEach(c=>{choicesUids[c.uid]=true})
    });
    });
    });
    // 2. 检查逻辑
    data.forEach((d,ix0)=>{
    d、 items.forEach((i1,ix1)=>{
    i1.items.forEach((i2,ix2)=>{
    if(i2.logic&&i2.logic.viewControl){
    i2.logic.viewControl.forEach((vc,ix3)=>{
    console.log(`data[${ix0}].items[${ix1}].items[${ix2}].logic.viewControl[${ix3}].equalTo:${vc.equalTo}-是${choicesUids[vc.equalTo]?'GOOD':'BAD'});
    });
    }
    });
    });
    
    });
    “我尝试了filter、map和foreach,但我根本做不到”-至少发布一种方法,我们可能会提供帮助。@Andreas您想要什么结果?您试图递归搜索任何uid匹配的对象?在问题本身->@zfrisch中,我试图在数组中找到一个值不是null的选项。项[0]。项[1]将被锁定,直到uid等于equalTo的选项具有非null的值