gpt4 book ai didi

javascript - 如何使用对象的键返回过滤后的对象数组

转载 作者:行者123 更新时间:2023-12-02 21:36:02 26 4
gpt4 key购买 nike

我想编写一个带有两个参数(对象数组和搜索字符串)的函数。该函数应返回一个数组,该数组已通过其各自的键过滤了每个对象数组。

我的示例数组和搜索字符串如下所示

const myArray = [{
createdAt: 1579147513645,
updatedAt: 1579147513645,
id: 3,
course: "Test",
techStack: "Test ",

} {
createdAt: 1581047008746,
updatedAt: 1581047008746,
id: 4,
course: "COmputer Science and mathemetics",
techStack: "Javascript and python, css and html",

} {
createdAt: 1582538141524,
updatedAt: 1582538141524,
id: 5,
course: "trrrt",
techStack: "dddf",

}]

const searchString = "sc"

我想要一个函数,如果任何对象键(当然,techStack 或其他键)包含字母“sc”,则该对象将在数组中返回。

只是为了支持我的观点。我将展示一个执行类似操作但仅处理“类(class)”对象键的函数。

const filterResult = (array, query) => {
const filterCriteria = el => el.course.toLowerCase().indexOf(query.toLowerCase()) !== -1;
return array.filter(filterCriteria)
};

最佳答案

使用Object.values()获取对象中所有值的数组,然后使用Array.prototype.some()检查是否有任何值包含搜索字符串。

const filterResult = (array, query) => {
query = query.toLowerCase();
const filterCriteria = el => Object.values(el).some(prop =>
typeof prop == 'string' &&
prop.toLowerCase().includes(query));
return array.filter(filterCriteria)
};

const myArray = [{
createdAt: 1579147513645,
updatedAt: 1579147513645,
id: 3,
course: "Test",
techStack: "Test ",
}, {
createdAt: 1581047008746,
updatedAt: 1581047008746,
id: 4,
course: "COmputer Science and mathemetics",
techStack: "Javascript and python, css and html",
}, {
createdAt: 1582538141524,
updatedAt: 1582538141524,
id: 5,
course: "trrrt",
techStack: "dddf",
}]

const searchString = "sc"

console.log(filterResult(myArray, searchString));

关于javascript - 如何使用对象的键返回过滤后的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60494196/

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