使用 Ramda 通过多个操作从值创建 JavaScript 对象
Create JavaScript object from value with multiple operations using Ramda
我如何最好地在 Ramda 中创建此函数?
function get_parts (buffer) {
return {
a: buffer.readInt16LE(0),
b: buffer.slice(2, 4)
}
}
get_parts(new Buffer('abcd'))
目的是保持函数调用风格并以尽可能简单的方式指定(和加入)操作。
我没有看到更改该功能的真正理由。
它干净、可读,并且很好地表达了您想要做的事情。假设您仍然想通过它 new Buffer('abcd')
或类似的东西,我看不出有什么可做的。
如果你想做一个免积分的版本,当然可以,但我认为不建议这样做。这在使代码更具可读性时很有用,但在这里不会这样做。这是我的第一次尝试,它并不漂亮:
var get_parts = R.converge(R.unapply(R.zipObj(['a', 'b'])), [
R.invoker(1, 'readInt16LE')(0),
R.invoker(2, 'slice')(2, 4)
]);
我如何最好地在 Ramda 中创建此函数?
function get_parts (buffer) {
return {
a: buffer.readInt16LE(0),
b: buffer.slice(2, 4)
}
}
get_parts(new Buffer('abcd'))
目的是保持函数调用风格并以尽可能简单的方式指定(和加入)操作。
我没有看到更改该功能的真正理由。
它干净、可读,并且很好地表达了您想要做的事情。假设您仍然想通过它 new Buffer('abcd')
或类似的东西,我看不出有什么可做的。
如果你想做一个免积分的版本,当然可以,但我认为不建议这样做。这在使代码更具可读性时很有用,但在这里不会这样做。这是我的第一次尝试,它并不漂亮:
var get_parts = R.converge(R.unapply(R.zipObj(['a', 'b'])), [
R.invoker(1, 'readInt16LE')(0),
R.invoker(2, 'slice')(2, 4)
]);