多维矩阵中的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);
正在尝试从以下结构中检索内部数组(标签):
“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);