首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >lodash -将对象投影/转换为键值数组

lodash -将对象投影/转换为键值数组
EN

Stack Overflow用户
提问于 2015-08-20 00:09:49
回答 5查看 46.7K关注 0票数 31

我将使用forOwn遍历一个对象的属性并手动创建一个数组,我不禁想到已经有一个oneliner可以做这件事了。

代码语言:javascript
复制
{ 
  prop1 : "value",
  prop2: { sub:1}
}

至:

代码语言:javascript
复制
[ 
   {key: "prop1", value: "value"},
   {key: "prop2", value: {sub:1}}
]

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-08-20 04:21:12

您可以在shorthand property names中使用lodash的_.map()

代码语言:javascript
复制
const obj = { 
  prop1 : "value",
  prop2: { sub:1}
};

const result = _.map(obj, (value, prop) => ({ prop, value }));

console.log(result);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.2/lodash.min.js"></script>

或者,您可以将Object#entriesArray.map()array destructuring结合使用

代码语言:javascript
复制
const obj = { 
  prop1 : "value",
  prop2: { sub:1}
};

const result = Object.entries(obj).map(([prop, value]) => ({ prop, value }));

console.log(result);

票数 40
EN

Stack Overflow用户

发布于 2015-08-20 00:14:07

你甚至不需要lodash来做这个:

代码语言:javascript
复制
var arr = Object.keys(obj).map(function(key){
  return { key: key, value: obj[key] };
});
票数 13
EN

Stack Overflow用户

发布于 2016-06-02 23:04:51

一点ES6:

_.map( obj, (value, key) => ({key,value}) )

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32100692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档