gpt4 book ai didi

javascript - 如何使用 JavaScript 中的过滤器根据用户输入过滤整个数组?

转载 作者:行者123 更新时间:2023-12-01 01:25:37 25 4
gpt4 key购买 nike

我正在尝试使用 javascript 中的过滤器来搜索数组。以下是我的数组:-

 "customerStatusInfoList": [
{
"customerId": 1110000012,
"caseStatus": "pending",
"customerName": "Robert",
"dateOfRequest": "2018-12-15 00:00:00.0"
},
{
"customerId": 1110000004,
"auditorName": "DcbAdmin",
"caseStatus": "pending",
"customerName": "Sam",
"dateOfRequest": "2018-12-14 12:40:04.0"
}
]

我正在使用以下函数来过滤数组:-

  filterTable = event => {
console.log("event.target.value", event.target.value);
console.log("rows", this.state.rows);

if (event.target.value !== "") {
let newRow = this.state.rows.filter(items => {
console.log("item.name", items.customerName);
if (items.customerName!== null)
return items.customerName
.toLowerCase()
.includes(event.target.value.toLowerCase());
});

this.setState({ rows: newRow, query: event.target.value });
} else {
console.log("Query string is empty ", event.target.value);
let newRow = this.state.custList;
console.log("new row :", newRow);
this.setState({ query: event.target.value, rows: newRow });
}
};

我能够过滤 customerName,但是当我尝试使用 customerId 或任何其他参数进行过滤时,我得到 customerId.includes 不是一个函数。但它适用于 customerName。如何使用 JavaScript 过滤器过滤整个表格?任何帮助或建议表示赞赏。谢谢。

最佳答案

customerId 是一个整数 - 您需要转换为字符串,例如:

return `${items.customerId}`
.toLowerCase()
.includes(event.target.value.toLowerCase());

顺便说一句,items 是一个令人困惑的变量名称 - 它是单个项目

此外,您可以通过分解项目来稍微简化事情,即:

let newRow = this.state.rows.filter(({customerId, customerName}) => 
`${customerName || ''}`
.toLowerCase()
.includes(event.target.value.toLowerCase())
);

包含与 customerIdcustomerNameauditorName 匹配的任何行:

let newRow = this.state.rows.filter(({customerId, customerName, auditorName}) => 
[customerId, customerName, auditorName].some(field =>
`${field || ''}`
.toLowerCase()
.includes(event.target.value.toLowerCase()))
);

关于javascript - 如何使用 JavaScript 中的过滤器根据用户输入过滤整个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53826288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com