如何在React的嵌套数组中实现动态搜索?
搜索数组形式存储的艺人信息实现方案
如果要搜索存储为数组的艺人信息,你可以利用数组的some()方法遍历每个艺人,判断是否与搜索词匹配:
仅搜索艺人的实现
function dynamicSearch() { return tracklist.filter(track => // 遍历艺人数组,只要有一个艺人匹配就保留该曲目 track.artist.some(artist => artist.toLowerCase().includes(searchTerm.toLowerCase()) ) ) }
some()方法会检查艺人数组中是否存在至少一个元素满足匹配条件——只要有任意一个艺人的名字(转小写后)包含搜索词(转小写后),就会返回true,对应的曲目就会被filter保留。
同时支持歌曲名和艺人搜索
如果需要同时支持搜索歌曲名和艺人,可以用逻辑或(||)把两个搜索条件结合起来,还可以提前转换搜索词的大小写,避免重复计算:
function dynamicSearch() { const lowerCaseSearch = searchTerm.toLowerCase(); return tracklist.filter(track => track.name.toLowerCase().includes(lowerCaseSearch) || track.artist.some(artist => artist.toLowerCase().includes(lowerCaseSearch)) ) }
内容的提问来源于stack exchange,提问作者Bruno Oliveira
相关产品推荐
相关产品推荐

