【问题标题】:How to Convert Object to array in Angular 4?如何在 Angular 4 中将对象转换为数组?
【发布时间】:2018-08-22 14:07:19
【问题描述】:

我想将我的Object 转换为数组,这是我的对象。

{5.0: 10, 28.0: 14, 3.0: 6}

我想要下面的数组

[{"type": 5.0,"value":10},{"type": 28.0,"value":14}, {"type": 3.0,"value":6}]

[{"5.0": 10},{"28.0": 14}, {"3.0": 6}]

【问题讨论】:

    标签: arrays angular typescript


    【解决方案1】:

    通过Object.keys 获取密钥,然后使用map 函数获取所需的输出。

    const obj = {5.0: 10, 28.0: 14, 3.0: 6};
    
    const mapped = Object.keys(obj).map(key => ({type: key, value: obj[key]}));
    
    console.log(mapped);

    可以通过Object.entries数组解构提供另一种解决方案。

    const obj = {5.0: 10, 28.0: 14, 3.0: 6};
    
    const mapped = Object.entries(obj).map(([type, value]) => ({type, value}));
    
    console.log(mapped);

    【讨论】:

    • 当返回值是“自动创建键值”时,您的第二种方法也是关于解构?
    • 解构部分仅在参数中进行 - ([type, value])。我在参数中得到一个数组并将它们分解为单个参数,而不是执行 param[0]param[1]
    • 这部分怎么样({type, value})?您只提供值,返回的数组也有键
    • 是的,当您只是传递属性时,它会创建一个具有相同名称的键。在这种情况下,我有一个具有两个属性的对象 - typevalue。这个{type, value} 等价于{type: type, value: value}
    【解决方案2】:

    使用 Object.keys 和 array.map:

    var obj = {5.0: 10, 28.0: 14, 3.0: 6}
    
    var arr = Object.keys(obj).map(key => ({type: key, value: obj[key]}));
    
    console.log(arr);

    如果你的浏览器支持 Object.entries,你可以使用它:

    var obj = {5.0: 10, 28.0: 14, 3.0: 6}
    
    var arr = Object.entries(obj).map(([type, value]) => ({type, value}));
    
    console.log(arr);

    【讨论】:

    • 请回答相同,不要重复回答
    • @AvanishKumar 无意复制某人的答案,我在他回答时回答了
    猜你喜欢
    • 2022-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 2021-05-23
    • 2021-09-27
    • 2013-10-20
    • 1970-01-01
    相关资源
    最近更新 更多