我有一个对象数组,在这些对象中有一个嵌套对象,其中有一个数组我正在尝试评估。看起来像这样:
item = [
{firstName: "John"
lastName: "Johnson"
capabilities: {demographic: Array(3), geographic: Array(3), language: Array(2)}
id: "ndja1-234-njk"
state: LA
}
{firstName: "Jane"
lastName: "Johnson"
capabilities: {demographic: Array(3), geographic: Array(3), language: Array(2)}
id: "ndsa1-234-njk"
state: TX
}
]
我试图过滤对象列表,仅返回与用户输入的名字,姓氏,电话号码和geographic
相匹配的对象。但是因为地理不在数组的第一层,所以当我尝试像这样通过它进行过滤时,我得到一个错误,该错误为null:
const newList = (items, value) => {
let providerList = items.filter(i => i.firstName.includes(value) || i.lastName.includes(value) || i.phone.includes(value) || i.capabilites.geographic.includes(value));
setSearchResult(providerList)
};
我相信这是因为地理值在对象中的位置,但是我不确定如何处理等待它不为null的情况。在添加地理OR语句之前,此功能一直有效。
答案 0 :(得分:1)
尝试此解决方案。
这可能是因为某些对象没有包含capabilities
的问题。
const newList = (items, value) => {
let providerList = items.filter(i => i.firstName.includes(value) || i.lastName.includes(value) || i.phone.includes(value) || i.capabilites.geographic && i.capabilites.geographic.includes(value));
setSearchResult(providerList)
};
答案 1 :(得分:0)
您有错字。代替i.capabilites
使用i.capabilities