我下面的Ramda代码不起作用。
是因为appSessions[0]吗?如果是的话,我应该怎么写?另外,如果找不到该值,如何添加默认值?

R.path(['appSessions[0]', 'personalInfo', 'personalInfo'], response);

最佳答案

您不想要['appSession[0]', ...],但想要['appSession', 0, ...]

提供给path的节点可以是字符串(对于对象)或数字(对于数组):



const response = {
  appSessions: [
    {
      id: 1,
      personalInfo: { personalInfo: {foo: 'bar'}, other: true },
      another: 1
    }, {
      id: 2,
      personalInfo: { personalInfo: {foo: 'qux'}, other: 99 },
      another: false
    }
  ]
}

console .log (
  R .path (['appSessions', 0, 'personalInfo', 'personalInfo'], response)
)

.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js"></script>





personalInfo内嵌套personalInfo的情况下,实际路径对我来说似乎很奇怪,但是它可以工作。

10-08 04:54