在ramda.js中将两个属性合并在一起
Merge two properties together in ramda.js
我想知道是否有更好的方法:
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
中是否有更好(更短)的方法可以做到这一点?我浏览了文档,但有些函数的用法我还不太了解。所以这就是我在这里问的原因……:)
小提琴:https://jsbin.com/jidiwejatu/edit?js,控制台
-------------------编辑------------------
这是一个相当简单的例子,但如果我必须合并来自不同路径的属性,我认为这会变得更加复杂,因为我必须使用R.path
来获取每个属性。我说得对吗?
您可以使用juxt
(在v0.19.0中添加)从对象中获得任何您想要的数组:
var getNames = R.pipe(
R.juxt([
R.path(['author', 'firstName']),
R.path(['author', 'lastName'])
]),
R.join(' ')
);
相关文章:
- 交换对象上两个属性的值
- 速度.js动画两个属性时持续时间不同
- JQuery选择:两个属性's值不相等
- 在ramda.js中将两个属性合并在一起
- 如何在培根中合并两个属性.js
- 基于两个属性从 javascript 中的对象数组中获取唯一数组
- 如何连接数组中对象的两个属性以用作ngOptions中的标签
- 在同一持续时间内对两个属性进行动画处理
- 使用 Object.defineProperties 提供两个属性
- 在 javascript 中用函数交换对象的两个属性
- 我可以在 D3 中一次指定两个属性吗?
- 角度“ng-repeat” - 如何仅过滤两个属性
- 我可以有两个属性名称相同的对象吗
- Linq.js:按两个属性(字段)分组
- 在量角器中,通过两个属性选择一个元素
- 如何通过两个属性定义元素
- 转换JSON数组的对象,从两个属性值创建新的属性
- 检查一个元素是否存在两个属性
- Javascript排序有两个属性
- 在单个元素上使用new/isolated作用域的两个属性指令