8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

将对象转换为对象数组?

Omar Ammura 1月前

84 0

我有一个如下所示的对象:{ \'1\':\'Technology\', \'2\':\'Startup\', \'3\':\'IT\',} 并且我需要将其转换为如下所示的对象数组:[ {id: 1, name:\'Techn...

我有一个如下所示的对象:

{
  "1": "Technology",
  "2": "Startup",
  "3": "IT",
}

我需要将其转换为如下所示的对象数组:

[
  {id: 1, name: "Technology"},
  {id: 2, name: "Startup"},
  {id: 3, name: "IT"}
]

什么是最干净和有效的方法?

帖子版权声明 1、本帖标题:将对象转换为对象数组?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Omar Ammura在本站《object》版块原创发布, 转载请注明出处!
最新回复 (0)
  • map 方法用于从当前值中投射新值并返回结果。您应该改用 .forEach()。

  • const words = {
      told: 64,
      mistake: 11,
      thought: 16,
      bad: 17
    }
    
    const results = []
    
    Object.entries(words).map(val => results.push({
      text: val[0],
      value: val[1]
    }))
    
    console.log(results)
  • 现在您可以使用 Object.entries() 将对象转换为键值对的数组(也存储为数组)。

    这使我们能够利用 数组解构, 从而可以使其成为一行漂亮的代码:

    const obj = {
      "1": "Technology",
      "2": "Startup",
      "3": "IT",
    };
    
    const result = Object.entries(obj).map(([id, name]) => ({id: +id, name}));
    
    console.log(result);

    添加一 unary plus ( + ) 将 id (字符串)转换为数字。

  • 平凡的方式

    var o = {
        "1": "Technology",
        "2": "Startup",
        "3": "IT",
    };
    var arr = [];
    for(var i in o) {
        arr.push({
            id: i,
            number: o[i]
        });
    };
    
  • 假设您的对象实例名为 obj

    Object.keys(obj).reduce((acc, curr) => {
        return [...acc, { id: curr, name: obj[curr] }]
    }, [])
    
  • 您可以 .map() 使用 Object.keys()

    let data = {
        "1": "Technology",
        "2": "Startup",
        "3": "IT",
    };
    
    let result = Object.keys(data)
                       .map(key => ({id: Number(key), name: data[key]}));
    
    console.log(result);

    有用的资源:

    • 数组.prototype.map()
    • 对象.keys()
  • 哦,这只是一个重复的建议 - 抱歉,缺乏背景信息 - 我还将该评论标记为不再需要(对此作者没有处罚),所以我想它已经被删除了 - 我将删除此评论和我的原始评论

  • @OwaisAslam,这绝对不是那个问题的重复。两者都涉及映射对象和数组以及类似的工具,但它们的起始和结束形状非常不同

返回
作者最近主题: