【发布时间】:2019-10-04 18:49:11
【问题描述】:
cons columnDefs = [
{
label: 'The_First_Name',
value: getProp,
args: ['firstName'] // different number of arguments depending on function
},
{
label: 'City',
value: getNestedProperty,
args: ['location', 'city']
}
]
const data = [
{
firstName: 'Joe',
lastName: 'Smith',
location: {
city: 'London'
}
},
{
firstName: 'Anna',
lastName: 'Andersson',
location: {
city: 'Stockholm'
}
}
]
const getProp = (object, key) => R.prop(key, object);
const getNestedProperty = (obj, args) => R.path(..args, obj);
Ramda 管道映射数据:
const tableBuilder = R.pipe(R.map); // some ramda functions in here
const rows = tableBuilder(data, columnDefs);
想要的输出:
rows output:
[
{
The_First_Name: 'Joe',
city: 'London'
},
{
The_First_Name: 'Anna',
city: 'Stockholm'
}
]
每一行的键是columnDefs 中的label 属性。该值是从value 属性中的Ramda 函数以及args 属性中定义的参数获取的。
https://plnkr.co/edit/rOGh4zkyOEF24TLaCZ4e?p=preview
完全卡住了。这甚至可能与 Ramda 相关吗?还是用纯 JavaScript 更好?
【问题讨论】:
-
rows 和 columnDefs 有什么关系,你能解释一下吗?
-
@KOTIOS。我更新了变量名称,使其更加清晰。
-
您的动态变量不清楚,您能否发布至少 2 个正确的输入,其中包含动态变量中的值及其对应的输出
-
@KOTIOS。我又添加了一个示例。
标签: javascript ramda.js