【问题标题】:Is there something similar to lodash _.toArray for ramda.js?ramda.js 是否有类似于 lodash _.toArray 的东西?
【发布时间】:2015-05-08 18:38:16
【问题描述】:

我想停止使用lodash.js 并切换到ramda.js,但我没有看到像_.toArray() 这样的对象函数,ramda 中是否有类似的东西我应该编写还是应该继续使用lodash 用于这些功能(可能还有更多我还没有遇到的情况。)

例如 在lodash,如果你有一个像这样的对象:

{"key1": {"inner": "val"}, "key2" : {"inner": "val"}}

你可以把它转换成这样的数组:

[{"inner": "val"}, {"inner": "val"}]

使用函数_.toArray()

【问题讨论】:

  • _.toArray() for objects - 嗯,你能给个样品吗?
  • IIRC, _.toArray 不适用于普通对象,仅适用于类数组对象(NodeList、ArgumentList 等)
  • @simplesthing 不。它只提供值,例如[ { inner: 'val' }, { inner: 'val' } ],您可以使用values
  • @thefourtheye 你说得对,我可以编辑这个例子,但问题是一样的,有没有我可以使用的使用 ramda 的 compose 或函数?
  • 抱歉,我没有看到值响应,谢谢@thefourtheye 如果您将您的评论移到答案中,我可以将其标记为正确。

标签: javascript functional-programming lodash ramda.js


【解决方案1】:

嗯,Ramda 有 values,这似乎就是你要找的东西:

var obj = {"key1": {"inner": "val"}, "key2" : {"inner": "val"}};
R.values(obj); //=> [{"inner": "val"}, {"inner": "val"}]

但是从lodash documentation 中可以看出,_.toArray 函数接受什么样的值,所以这可能不是一个完全的替代品。

【讨论】:

【解决方案2】:

Mb vanilla.js 会帮助你吗? :) (浏览器支持 IE9+ 和所有其他浏览器)

var obj = {"key1": {"inner": "val"}, "key2" : {"inner": "val"}};
    
    
var array = Object.keys(obj || {}).map(function(key){
   return obj[key];
});
    
document.write(JSON.stringify(array, null, 4));

【讨论】:

    猜你喜欢
    • 2011-12-04
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多