javascript – 使用下划线js或lodash将对象解析为数组

前端之家收集整理的这篇文章主要介绍了javascript – 使用下划线js或lodash将对象解析为数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要解析一个对象并使用Underscore / Lo-Dash转换为一个数组

尝试使用usersocre,但它没有得到预期的结果.对不起我是下划线js的新手.非常感谢您的帮助.

  1. var arr = _.values(obj)
  2.  
  3. var obj = {
  4. '2c13790be20a06a35da629c71e548afexing': [{
  5. connector: '',displayName: 'John',loginName: '',userImage: '2.jpg'
  6. }],'493353a4c5f0aa71508d4055483ff979linkedinpage': [{
  7. connector: '',displayName: 'Mak',userImage: '1.jpg'
  8. }]
  9. }

预期的输出数组

  1. array = [{
  2. connector: '2c13790be20a06a35da629c71e548afexing',userImage: '2.jpg'
  3. },{
  4. connector: '493353a4c5f0aa71508d4055483ff979linkedinpage',userImage: '1.jpg'
  5. }]

解决方法

将Object.keys与forEach一起使用,并在数组中添加对象.

>获取对象的所有键
>使用forEach迭代keys数组
>在结果数组中推送子数组的第一个元素.

码:

  1. var arr = [];
  2. Object.keys(obj).forEach(function(e) {
  3. // Get the key and assign it to `connector`
  4. obj[e][0].connector = e;
  5. arr.push(obj[e][0]);
  6. });
  1. var obj = {
  2. '2c13790be20a06a35da629c71e548afexing': [{
  3. connector: '',userImage: '2.jpg'
  4. }],'493353a4c5f0aa71508d4055483ff979linkedinpage': [{
  5. connector: '',userImage: '1.jpg'
  6. }]
  7. };
  8.  
  9. var arr = [];
  10. Object.keys(obj).forEach(function(e) {
  11. obj[e][0].connector = e;
  12. arr.push(obj[e][0]);
  13. });
  14.  
  15. console.log(arr);
  16. document.getElementById('output').innerHTML = JSON.stringify(arr,4);
  1. <pre id="output"></pre>

将相同的代码转换为使用Lodash / Underscore的forEach.

  1. var arr = [];
  2. _.forEach(obj,function(e,k) {
  3. e[0].connector = k;
  4. arr.push(e[0]);
  5. });
  1. var obj = {
  2. '2c13790be20a06a35da629c71e548afexing': [{
  3. connector: '',userImage: '1.jpg'
  4. }]
  5. };
  6.  
  7. var arr = [];
  8.  
  9. _.forEach(obj,k) {
  10. e[0].connector = k;
  11. arr.push(e[0]);
  12. });
  13.  
  14. console.log(arr);
  15. document.getElementById('output').innerHTML = JSON.stringify(arr,4);
  1. <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>
  2. <pre id="output"></pre>

猜你在找的JavaScript相关文章