Javascript 阵列内部的过滤器阵列?
我有这样的结构: 现在我要做的是筛选项目并找到结果 这是我的。ts:Javascript 阵列内部的过滤器阵列?,javascript,Javascript,我有这样的结构: 现在我要做的是筛选项目并找到结果 这是我的。ts: search(event) { let b = this.autocompletedata.filter( a => a.items['item']? a.items['item'].startsWith(event.query) : false); console.log(b,'result'); } 有什么建议我做错了什么吗?我总是得到空结果尝试使用: search(event) {
search(event) {
let b = this.autocompletedata.filter( a => a.items['item']? a.items['item'].startsWith(event.query) : false);
console.log(b,'result');
}
有什么建议我做错了什么吗?我总是得到空结果尝试使用:
search(event) {
let b;
a.forEach(function(entry) {
b = this.autocompletedata.filter( entry => entry['item']? entry['item'].startsWith(event.query) : false);
});
console.log(b,'result');
}
不要对存储结果的变量和
filter()
内的私有函数中的变量使用相同的标识符a
。好的,我更改了该标识符,但再次得到空结果,filter()
函数需要一个布尔值。因此,如果您的项目不匹配,您应该返回false
,而不是空字符串。我更新了。。。但它不起作用的实际原因是,a.items['item']
始终是未定义的,因为a.items
是一个数组,在括号内,您需要查找一些元素。您需要迭代a.items
数组。这里的“a”是什么?a
是您的数组this.autocompletedata.forEach(function(entry){b=this.autocompletedata.filter(entry=>entry['item']?entry['item'].startsWith(event.query):false);console.log(entry,'entry');});如果因为autocompletedata是我的数组而这样做,我会得到以下错误:类型“void”上不存在属性“autocompletedata”。