当前位置:  开发笔记 > 编程语言 > 正文

如何将对象转换为对象数组(或对象集合)

如何解决《如何将对象转换为对象数组(或对象集合)》经验,为你挑选了2个好方法。

搜索和搜索,找不到这个,但我认为它很容易.

我正在寻找相当于lodash _.pairs()的lodash"对象" - 但我想要一个对象数组(或对象集合).

例:

// Sample Input
{"United States":50, "China":20}

// Desired Output
[{"United States":50}, {"China":20}]

Hunan Rostom.. 5

这样的事情就足够了吗?不是lodash,而是...

var input = {"United States":50, "China":20};
Object.keys(input).map(function(key) {
  var ret = {};
  ret[key] = input[key];
  return ret;
});
//=> [{"United States":50}, {"China":20}]


undefined.. 5

使用lodash,这是产生预期结果的一种方法:

var res = _.map(obj, _.rearg(_.pick, [2,1]));

上面的短代码片段可能令人困惑.不使用该_.rearg功能,它变成:

_.map(obj, function(v, k, a) { return _.pick(a, k); });

基本上该rearg函数用于重新排序传递给pick方法的参数.



1> Hunan Rostom..:

这样的事情就足够了吗?不是lodash,而是...

var input = {"United States":50, "China":20};
Object.keys(input).map(function(key) {
  var ret = {};
  ret[key] = input[key];
  return ret;
});
//=> [{"United States":50}, {"China":20}]



2> undefined..:

使用lodash,这是产生预期结果的一种方法:

var res = _.map(obj, _.rearg(_.pick, [2,1]));

上面的短代码片段可能令人困惑.不使用该_.rearg功能,它变成:

_.map(obj, function(v, k, a) { return _.pick(a, k); });

基本上该rearg函数用于重新排序传递给pick方法的参数.


这是这个问题的正确答案,但是如果你在我的代码库中使用它而没有10行注释,我会踢你.我可以看看@ HunanRostomyan的代码,并毫不犹豫地告诉你它究竟做了什么
推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有