数组内的深度搜索数组

时间:2019-12-19 05:52:22

标签: javascript arrays angular reactjs typescript

我有一个值数组

const searchList = ['abc',12,'xyz'];

如果需要找到值,我需要从另一个数组中搜索并返回所有父项或子项。

    const array = [
  {
    "value1":12,
    "value_2":[
      {
        "value_2_a":{
          "a":'abc',
          "value_2a":[
            {
              "b":'xyz'
            }
          ]
        }
      }
    ]
  }
];

这是我尝试过的方法,但问题是它仅返回一个对象而不是父对象而不是子对象。

filterData(data: any[], arrayToSearch: any[]) {
    let filtrate = data;
    filtrate = filterDeep(filtrate, (value, key) => {
      let isExists = false;
      arrayToSearch.forEach((element) => {
        if (!isExists) {
          value = typeof value !== 'string' ? value.toString().toLowerCase() : value;
          isExists = _.includes(value, element);
        }
      });
      return isExists;
    }, { condense: false });
    if (filtrate !== null) {
      return filterDeep(data, (value, key, path, depth) => {
        return exists(filtrate, depth.parent.path);
      });
    }
    return {};
  }

我用了

import { filterDeep, exists } from 'deepdash-es/standalone';

0 个答案:

没有答案