Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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 在ramda.js中将两个属性合并在一起_Javascript_Ramda.js - Fatal编程技术网

Javascript 在ramda.js中将两个属性合并在一起

Javascript 在ramda.js中将两个属性合并在一起,javascript,ramda.js,Javascript,Ramda.js,我想知道是否有更好的方法: var books = [ { title: 'Some Book', author: { firstName: 'John', lastName: 'Doe' } }, { title: 'Another Book', author: { firstName: 'Jane', lastName: 'Smith'

我想知道是否有更好的方法:

var books = [
   { 
      title: 'Some Book',
      author: {
         firstName: 'John',
         lastName: 'Doe'
      }
   },
   {
      title: 'Another Book',
      author: {
         firstName: 'Jane',
         lastName: 'Smith'
      }
   }
];

var getNames = R.pipe(
   R.prop('author'),
   R.props(['firstName', 'lastName']),
   R.join(' ')
);

console.log(R.map(getNames, books));
所以基本上,我试图通过组合两个属性来获得全名。这是可行的,但我想知道在
Ramda
中是否有更好(更短)的方法来实现这一点?我浏览了文档,但是有些函数我还不太了解它的用法。这就是为什么我在这里问……)

小提琴:

-------------------编辑-----------------


这是一个相当简单的例子,但如果我必须合并来自不同路径的属性,我认为这会变得更复杂,因为我必须使用
R.path
来访问每个属性。我说的对吗?

您可以使用
juxt
(在v0.19.0中添加)从对象中获取任何内容的数组:

var getNames = R.pipe(
    R.juxt([
        R.path(['author', 'firstName']),
        R.path(['author', 'lastName'])
    ]),
    R.join(' ')
);