我试图通过搜索表单过滤一些API数据,但不确定如何获得所需的结果,也不确定我哪里出错了。
我调用一个API,它返回一个对象数组,看起来像这样:
const apiData = [
{
"firstName": "chris",
"lastName": "kundill",
"postcode": "sa11 3fj"
},
{
"firstName": "sam",
"lastName": "white",
"postcode": null
},
{
"firstName": "john",
"lastName": "davies",
"postcode": "sa11 3fj"
},
{
"firstName": "jane",
"lastName": "davies",
"postcode": "sa11 3fj"
},
{
"firstName": "maria",
"lastName": "davies",
"postcode": "sa11 3fj"
},
{
"firstName": "nutter",
"lastName": "dave",
"postcode": "sa11 3fj"
},
{
"firstName": "donna",
"lastName": "duggie",
"postcode": "sa11 3fj"
}
]
我已经将搜索表单数据存储在一个对象中,它看起来像这样,NB。不是所有3个输入字段都必须填写:-
const formData = {
"firstName": "Chris",
"postcode": "SA11 3FJ"
}
然后,我获取formData
对象,并将值转换为小写,并通过以下操作删除任何空字符串:
const sanitise = Object.values(formData).map((item) => {
return item.toLowerCase()
}).filter((item) => {
if (item !== '') {
return item
}
})
给我:-
const sanitise = ['chris', 'sa11 3fj']
如何过滤API数据以返回包含sanitise
数组数据的正确对象?
我一直在使用array.filter
方法,但我无法找到正确的条件组合,以仅返回正确的对象,而不返回包含"postcode": "sa11 3fj"
的每个对象
2条答案
按热度按时间igetnqfo1#
如果在清理表单数据后将其作为对象保存,则可以针对数据集中的每个对象检查其键/值对,而无需在搜索函数中硬编码键。
其他文件
filter
reduce
Object.entries
every
jvlzgdj92#
好吧,如果你只想解决这个问题,这对我来说很有效:
我不确定我应该用
let
还是var
还是const
来表示filtered
变量,哈哈