gpt4 book ai didi

javascript - 根据对象值过滤嵌套的对象数组Javascript ES6

转载 作者:行者123 更新时间:2023-12-02 22:55:09 25 4
gpt4 key购买 nike

我正在尝试根据 search 变量(字符串)过滤下面的对象数组。因此,用户可以根据头衔、年份或人名进行搜索

array = [{
"title": "Test",
"year": 2018,
"people": [
{
"name": "person1"
},
{
"name": "person2"
}],
},
{
"title": "Test2",
"year": 2018,
"people": [
{
"name": "person3"
},
{
"name": "person4"
},
{
"name": "person5"
}],
},...]

我编写了以下函数,该函数适用于titleyear,但我不知道如何搜索内部的people数组功能。我知道如何在没有 ES6 的情况下做到这一点,但我更喜欢 ES6,它仍然让我感到困惑:

filteredArray() {
let search = this.search.toLowerCase();
return this.array.filter(function (item) {
return Object.values(item).some(val =>
String(val).toLowerCase().includes(search));
})
},

this.search 是保存用户输入值的 v-model。这是Codepen

感谢您的帮助:)

最佳答案

以下代码对您的用例有帮助

   var searchString = 'person5';

let result = array.filter(ele =>
ele.title.includes(searchString)
|| `${ele.year}`.includes(searchString)
|| ele.people.some(pele => pele.name.includes(searchString))
)
console.log(JSON.stringify(result));

关于javascript - 根据对象值过滤嵌套的对象数组Javascript ES6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58015872/

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