Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过将嵌套特性与搜索项进行比较进行筛选_Javascript_Arrays_Angular_Typescript - Fatal编程技术网

Javascript 通过将嵌套特性与搜索项进行比较进行筛选

Javascript 通过将嵌套特性与搜索项进行比较进行筛选,javascript,arrays,angular,typescript,Javascript,Arrays,Angular,Typescript,在我的typescript中,我想通过比较嵌套属性和搜索词来进行过滤。 例如:我有一个对象数组 var array = [ { game: 'Cricket', team: ['Sally','Bob','John'], }, { game: 'Basketball', team: ['Linda', 'George'], } ] 如果我搜索“John”,那么结果应该是 [ {

在我的typescript中,我想通过比较嵌套属性和搜索词来进行过滤。 例如:我有一个对象数组

var array = [
      {
        game: 'Cricket',
        team: ['Sally','Bob','John'],
      },
      {
        game: 'Basketball',
        team: ['Linda', 'George'],
      }
]
如果我搜索“John”,那么结果应该是

[
  {
    game: 'Cricket',
    team: ['John']
   }
]

请帮我找出解决办法。感谢您的支持。

基于您的期望,以下内容应该有效:

使用reduce
类型游戏={
游戏:弦乐
团队:字符串[]
}
康斯特游戏=[
{
游戏:“板球”,
团队:[“萨利”、“鲍勃”、“约翰”]
},
{
游戏:“篮球”,
团队:[“琳达”、“乔治”]
}
]
常量筛选器字节成员=(游戏:游戏[],成员:字符串):游戏[]=>
游戏。减少(
(p,c)=>(c.团队包括(成员)?[…p,{…c,团队:[成员]}]:p),
[]
)
log(filterByTeamMember(游戏,'Linda'))
//输出
//[{比赛:'篮球',球队:['Linda']}]
使用平面图
const filterByTeamMember=(游戏:游戏[],成员:字符串):游戏[]=>
games.flatMap((game)=>(game.team.includes(member)?[{……game,team:[member]}]:[]))

据我所知。您想搜索前“john”作为团队成员的元素吗? 这里有一个快速解决方案,您可以根据自己的需要进行更改

const a=[{
游戏:“板球”,
团队:[“萨利”、“鲍勃”、“约翰”]
},
{
游戏:“篮球”,
团队:[“琳达”、“乔治”]
}
]
const target=“John”;
//这将通过检查当前元素是否符合条件来过滤数组,并返回元素
常数res=[];
a、 地图(el=>el.team.includes(目标)
?res.push({…el,团队:[target]})
:错
);

控制台日志(res)您希望支持哪些其他搜索标准?你能写下你想要实现的函数的签名吗?serchByGame、searchByItem?此数组是否始终具有相同的结构?仅按项搜索,且数组始终具有相同的结构过滤后的
团队的
应为
['Sally'、'Bob'、'John']
或只是
['John']
?最初团队的数组长度约为10+,我只想显示['John'](例如,我在文本框中输入的字符串-例如John)谢谢,但是,结果应该只返回John-不是所有三个sally、bob、John你可以编辑结果数组的结构,我只演示了如何筛选OK。我已经使用了筛选,但没有得到预期的结果-它返回整个数组-这是我的问题谢谢Faycel Arab