gpt4 book ai didi

javascript - 数组中的对象 数组中的对象 数组中的对象 JavaScript - 搜索

转载 作者:行者123 更新时间:2023-12-05 09:11:28 25 4
gpt4 key购买 nike

我有这样的数据:

   const bigData = [
{
id: '1',
data: [
{category: 'swim', value: 'Abc'},
{category: 'ran', value: '123'},
{category: 'play', value: 'Test'}
]
},
{
id: '2',
data: [
{category: 'swim', value: 'Abc'},
{category: 'ran', value: ''},
{category: 'play', value: 'abc'}
]
},
{
id: '3',
data: [
{category: 'swim', value: 'String that I Need'},
{category: 'ran', value: '456'},
{category: 'play', value: 'Testtest'}
]
}
]

如果其中一个对象的值中包含字符串的一部分,我想获取对象数组。

例如,如果搜索字符串是“String tha”,它应该返回

   [ {
id: '3',
data: [
{category: 'swim', value: 'String that I Need'},
{category: 'ran', value: '456'},
{category: 'play', value: 'Testtest'}
]
}]

如果搜索字符串是“Abc”,它应该返回

[{
id: '1',
data: [
{category: 'swim', value: 'Abc'},
{category: 'ran', value: '123'},
{category: 'play', value: 'Test'}
]
},
{
id: '2',
data: [
{category: 'swim', value: 'somethinf'},
{category: 'ran', value: ''},
{category: 'play', value: 'Abcd'}
]
},]

这是我目前所拥有的,不确定它是否是正确的方向:

const arr = bigData.map(
(item) => item.data
)
const res = arr
?.map((item) => item.map((e) => e.value))
.filter((i) => i.map((e) => e.includes(search) === true))

最佳答案

没有理由将外部数组 map() 到每个对象的 data 成员,因为返回值和输入值具有相同的布局。相反,您在外部数组 bigData 上执行 filter(),它应该保留其内部数组成员 data 满足特定条件的对象。

您可以使用 some() 检查该条件,因为它应用于数组的每个元素,您只关心是否存在匹配的元素。

function filterBySearch (search) {
return bigData.filter(
({ data }) => data.some(
({ value }) => value.includes(search)
)
);
}

const bigData = [
{
id: '1',
data: [
{category: 'swim', value: 'Abc'},
{category: 'ran', value: '123'},
{category: 'play', value: 'Test'}
]
},
{
id: '2',
data: [
{category: 'swim', value: 'Abc'},
{category: 'ran', value: ''},
{category: 'play', value: 'abc'}
]
},
{
id: '3',
data: [
{category: 'swim', value: 'String that I Need'},
{category: 'ran', value: '456'},
{category: 'play', value: 'Testtest'}
]
}
];

console.log(filterBySearch('String tha'));
console.log(filterBySearch('Abc'));
.as-console-wrapper{max-height:100%!important;}

关于javascript - 数组中的对象 数组中的对象 数组中的对象 JavaScript - 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60065796/

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