繁体   English   中英

如何访问嵌套在对象内的数组

[英]How can I get to an array nested inside an object

我有一个对象数组,在这些对象中,有一个嵌套对象,其中包含一个我正在尝试评估的数组。 它看起来像这样:

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
}
]

我试图筛选对象列表,只返回匹配用户输入任何名字,姓氏,PHONENUMBER,并且对象geographic 但是因为地理不在数组的第一级,所以当我尝试像这样过滤它时,我收到一个错误,提示为空:

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)
  };

我相信这是因为对象中地理值的位置,但我不确定如何处理等待它不为空。 在我添加地理 OR 语句之前,此函数一直有效。

试试这个解决方案。 这可能是问题,因为某些对象不包含其中的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)
  };

你有一个错字。 取而代之的i.capabilites使用i.capabilities

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM