多维矩阵中的nodejs过滤器数组

nodejs filter array in a multimendiosnal matrix

正在尝试从以下结构中检索内部数组(标签):

“tags”数组包含具有“function”值的标签,为此我使用以下表达式:

let func = parsed.filter(x => x.tags.filter(x => x.tag == "function"));

正在解析结构,结果是:

它包括一个在“标签”中不包含“函数”值的数组 属性。 我怎样才能只得到在“标签”中包含“函数”值的数组属性?

你的问题是内部过滤器 x.tags.filter(x => x.tag == "function") return 的空数组 [] 即使它没有找到任何标签 function.

您需要确保 return true/false 或至少正确 truthy/falsy 值。

简单修复,只需添加 .length:

let func = parsed.filter(x => x.tags.filter(x => x.tag == "function").length);

0 是虚假值,任何大于 0 的值,如 1 等。 是真实的

测试:

var arr = [
  { tags: [{ tag: 'function' }]},
  { tags: [{ tag: 'function2' }]}
].filter(x => x.tags.filter(x => x.tag == "function").length);
// arr is [{ tags: [{ tag: 'function' }]}]
console.log(arr);