12345678910111213141516171819202122232425262728 |
- let getObjectKey = (object, value) => {
- return Object.keys(object).find(key => object[key] == value);
- };
- let name = ['modules', 'apps'];
- function query(list, tier, need) {
- if (!list) return;
-
- if (list.constructor !== Array) return query(list[Object.keys(list).filter((key) => name.includes(key))], tier, need);
-
- let arr = list.find(v => getObjectKey(v, tier[0]));
- if (tier.length > 1) return query(arr, tier.splice(1, 1), need);
-
- if (arr.constructor !== Array) arr = arr[Object.keys(arr).filter((key) => name.includes(key))]
- let perArr = [];
- for (let i = 0; i < arr.length; i++) {
- if (need.includes(arr[i].systemmodulename)) perArr.push(arr[i])
- }
- return perArr;
- };
- module.exports.query = query;
|