Javascript 带滤波器的路径-带Ramda
我正在从一个API查询数据,该API具有我需要访问的嵌套对象属性Javascript 带滤波器的路径-带Ramda,javascript,ecmascript-6,ramda.js,Javascript,Ecmascript 6,Ramda.js,我正在从一个API查询数据,该API具有我需要访问的嵌套对象属性 const players = teamsData && teamsData.team && teamsData.team.players; 我正在使用path获取此数据 const players = path(['team', 'players'], teamsData); 这是可行的,但当我与过滤器结合使用时,会出现一个错误 理想情况下,我希望使用管道,并将其与Ramda的过滤器方法相结合
const players = teamsData && teamsData.team && teamsData.team.players;
我正在使用path
获取此数据
const players = path(['team', 'players'], teamsData);
这是可行的,但当我与过滤器结合使用时,会出现一个错误
理想情况下,我希望使用管道
,并将其与Ramda的过滤器
方法相结合
我的代码如下所示:
const injuredPlayers = pipe(
path(['team', 'players'], teamsData),
filter(player => player.isInjured)
);
看起来players变量等于
const players=path(['team'、'players'],teamsData)代码>看起来players变量等于
const players=path(['team'、'players'],teamsData)代码>如果你只是想要受伤球员的名单,你可以写
const-dplayers=
过滤器(player=>player.isInjured)(路径(['team','players'],teamsData)
如果您想要一个从teamsData
检索该信息的函数,那么您可以编写
const getharnerdplayers=管道(
路径(“[团队”,“球员]),
过滤器(道具('isInjured'))
)
(或将pathr
与[]
配合使用,以提高可靠性)并使用
const-injurddplayers=getinjurddplayers(团队数据)
您的代码将这两种不同的样式结合在一起。如果您只需要受伤球员的列表,您可以编写
const-dplayers=
过滤器(player=>player.isInjured)(路径(['team','players'],teamsData)
如果您想要一个从teamsData
检索该信息的函数,那么您可以编写
const getharnerdplayers=管道(
路径(“[团队”,“球员]),
过滤器(道具('isInjured'))
)
(或将pathr
与[]
配合使用,以提高可靠性)并使用
const-injurddplayers=getinjurddplayers(团队数据)
您的代码将这两种不同的样式结合在一起。什么是teamsData
?本机数组筛选器不会检查未定义。尝试使用ramda筛选器?@evolutionxbox更新了问题。尝试在不提供teamsData
的情况下使用path,并将其传递到伤害层
@peterflanagan:addedWhat isteamsDatata
?本机数组筛选器不检查是否存在未定义。尝试使用ramda筛选器?@evolutionxbox更新了问题。尝试在不提供teamsData
的情况下使用path,并将其传递到Agendadplayers
@peterflanagan:AddedHanks!为什么要使用pathOr
interest@peterflanagan万一有没有这样的路径或路径未定义您的代码将始终运行而不出错这导致以下错误:arity的第一个参数必须是不大于10的非负整数there@peterflanagan现在很确定原因是管道e期望您传递函数,但您传递的是结果(路径(['team','players',teamsData)…路径(['team','players',],teamsData)-不是函数谢谢!您为什么要使用pathr
作为interest@peterflanagan如果没有这样的路径或路径未定义,您的代码将始终运行而不出错,这将导致以下错误:arity的第一个参数必须是不大于10的非负整数
@peterflanagan需要更多上下文I我会请你看一看作品好吗there@peterflanagan现在可以肯定的是,原因是pipe希望您传递函数,但您传递的是结果pipe(路径(['team','players','teamsData)…路径(['team','players','teamsData])不是函数