【问题标题】:Convert Data Type Inside Array on Angular在 Angular 上转换数组内的数据类型
【发布时间】:2019-07-10 08:55:54
【问题描述】:

我有一个从 console.log(val) 显示的动态生成的数组,就像这样:

[{Chrome:"61.41"},{Internet Explorer:"11.84"},{Firefox:"10.85"}]

我的代码(在 Angular component.ts 上):

this.customerservice.getTotalCustomer().subscribe((res)=>{
   this.apiData = res;
   let result = [];
    this.apiData.forEach(item => {
      let prop = Object.keys(item)[0];
      result.push({name: prop, y: item[prop]});
    })
    console.log(result);  
})

我的问题是,是否可以像这样转换或更改我的数组格式?

[{ name: 'Chrome', y: 61.41 }, { name: 'Internet Explorer', y: 11.84 }, { name: 'Firefox', y: 10.85 }]

谢谢大家...

【问题讨论】:

    标签: arrays json angular multidimensional-array


    【解决方案1】:

    试试这个

    let arr= [{"Chrome":"61.41"},{"Internet Explorer":"11.84"},{"Firefox":"10.85"}];
    
    let result = [];
    arr.forEach(item => {
      let prop = Object.keys(item)[0];
      result.push({name: prop, y: item[prop]});
    })
    
    console.log(result);

    还要检查this 以获得完整的工作代码

    【讨论】:

    • 它只是显示了 "[{name: "Chrome", y: "61.41"}]" 人,而不是整个数据。
    • 您是否需要一些时间来运行 sn -p 添加的代码?
    • 你的代码sn-p是对的,没有错。但我不知道我是否尝试对我的代码实施您的解决方案只是像我上面提到的那样给出输出
    • 你能展示你的实现吗?将其添加到您的问题中。
    • 我已被添加到我的问题中 @Amin Chigadani 先生
    【解决方案2】:

    Array.from 是使用第二个映射参数将对象数组映射到新对象数组的另一种方法。

    const array = [{"Chrome":"61.41"},{"Internet Explorer":"11.84"},{"Firefox":"10.85"}];
    const arrayConv = Array.from(array, obj => { return {"name":Object.keys(obj)[0], "y":Object.values(obj)[0] } });
    console.log(arrayConv);

    【讨论】:

      【解决方案3】:
      let newData = this.apiData.map(item => ({ name: Object.keys(item)[0], y: item[Object.keys(item)[0]] }))
      

      【讨论】:

      • 它只是显示了 "[{name: "Chrome", y: "61.41"}]" @Fateme Fazli,而不是整个数据。
      • 嗨@Fateme Fazli,它是否与我的数据类型有关:[{Chrome:"61.41"},{Internet Explorer:"11.84"},{Firefox:"10.85"}]?不是 [{"Chrome":"61.41"},{Internet "Explorer":"11.84"},{"Firefox":"10.85"}]
      【解决方案4】:

      您可以使用 array.reduce 并按如下方式转换对象,

      演示

      var arrOfObj = [{"Chrome":"61.41"},{"Internet Explorer":"11.84"},{"Firefox":"10.85"}];
      
      var result = arrOfObj.reduce(function(items, item) {
        var fixed = {};
        var keys = Object.keys(item);
        keys.forEach(function(key) {
          fixed.name = key;
          fixed.y = item[key];
        });
        items.push(fixed);
        return items;
      }, []);
      
      
      console.log(result);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多