Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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_Ecmascript 6 - Fatal编程技术网

Javascript 清理“查找”功能

Javascript 清理“查找”功能,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在尝试创建一个函数,该函数将返回数组中的特定对象。我最后在函数中放了一个函数,不确定这是否干净。代码如下: const getTeam = (teams, teamId) => { if(teamId === 0) return teams; const findTeam = (team) => { return team.teamId === teamId; } teams.find(findTeam); } 这是一系列的

我正在尝试创建一个函数,该函数将返回数组中的特定对象。我最后在函数中放了一个函数,不确定这是否干净。代码如下:

const getTeam = (teams, teamId) => {
   if(teamId === 0)
      return teams;

   const findTeam = (team) => {
      return team.teamId === teamId;
   }

   teams.find(findTeam);

}
这是一系列的团队

[
   {
      id: 123,
      name: "Boston Celtics",
      players: [
         { id: 747, name: "John Doe" },
         { id: 749, name: "John Smith" },
      ]
   },
   {
      id: 234,
      name: "LA Lakers",
      players: [
         { id: 888, name: "James Smith" },
         { id: 823, name: "John Green" },
      ]
   }
]
我主要关心的是在getTeam函数中包含findTeam函数

更新: 像这样的?也许吧

const getTeam = (teams, teamId) => {
   if(teamId === 0)
      return teams;

   teams.find((team) => {
      return team.teamId === teamId;
   });

}
只是短一点,不是更好。正如许多其他人所指出的那样,异常函数与命名函数与循环将引发一场微秒级的战争,因此这并不值得

function getTeam(teams,teamId) {
        return teams.filter((x) => x.id === teamId);
};

也许吧?一定是return team.id吗?在另一个函数中包含一个函数没有什么错。这是一个很好的用法。但是正如@Jonasw所建议的,大多数人会使用匿名函数来实现这一点。现在你的更新等于我的代码,只是我没有使用返回和ParentHiseFind,因为它会在找到第一项后停止。我看到了两者的优点。如果可能有多个元素具有相同的teamId,则筛选器是一个不错的选择。在我的例子中,find比较干净,因为从技术上讲,我不应该有一个元素多次使用相同的teamId。但是,如果使用filter,则需要将返回作为一个团队数组来处理。我将这样编写它。虽然可能会有更多的空间和两行:@georg-Yay!nounnecessaryspaces~js解析器
function getTeam(teams,teamId) {
        return teams.filter((x) => x.id === teamId);
};