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(' ')
);