【问题标题】:Create an object from an array of objects using the value from one object as the key for the new object使用一个对象的值作为新对象的键,从一组对象创建一个对象
【发布时间】:2023-01-08 14:18:11
【问题描述】:

当我过滤某些城市时,这里的新手试图从我从 Supabase 获得的数组中创建一个对象。

以下是传入的数据:

[
    {
        "weather": "sunny",
        "percentage": "31"
    },
    {
        "weather": "rain",
        "percentage": "19"
    },
    {
        "weather": "cloudy",
        "percentage": "35"
    },
    {
        "weather": "snow",
        "percentage": "15"
    }
]

我怎样才能接受并创造这个?

{
    sunny: 31,
    rain: 19,
    cloudy: 35,
    snow: 15,
}

我试过在这里搜索多个问题,但运气不佳,但如果在其他地方得到回答,请指出。我是 JS 的新手,经历过地狱般的教程,但似乎无法得到它来输出我需要的东西。

这是从 Supabase 获取数据的异步函数:

    async function getData() {
        const { data, error } = await supabase
            .from('cities')
            .select('weather, percentage')
            .match({ city: targetCity });
        if (error) throw new Error(error.message);

我得到的最接近的是使用这个:

const result = data.map(Object.values);
console.log(result);

这给出了这个输出,但它仍然是数组:

(4) [Array(2), Array(2), Array(2), Array(2)]
0: (2) ['sunny', '31']
1: (2) ['rain', '19']
2: (2) ['cloudy', '35']
3: (2) ['snow', '15']
length: 4
[[Prototype]]: Array(0)

【问题讨论】:

    标签: javascript arrays object async-await supabase


    【解决方案1】:
    let input = [
        {
            "weather": "sunny",
            "percentage": "31"
        },
        {
            "weather": "rain",
            "percentage": "19"
        },
        {
            "weather": "cloudy",
            "percentage": "35"
        },
        {
            "weather": "snow",
            "percentage": "15"
        }
    ]
    
    let output = {}
    
    for (let elem of input ) {
        output[elem.weather] = elem.percentage 
    }
    
    console.log(output)
    

    还有其他方法可以做到。但我将使用一个简单的循环,因为它更容易理解。如果这没有意义,请告诉我

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-28
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      • 2020-12-21
      相关资源
      最近更新 更多