【问题标题】:Javascript transform Object key to object valuesJavascript将对象键转换为对象值
【发布时间】:2022-08-18 17:54:00
【问题描述】:

我有一个每天计数的对象,日期是关键。我想创建一个新对象,它有两个使用键:值对的属性(天和计数)。

这是我拥有的输入格式,以及我试图实现的结构:

const have = {
    \"2022/01/01\":0, 
    \"2022/01/02\":10, 
    \"2022/01/03\":12, 
    \"2022/01/04\":6, 
    \"2022/01/05\":8
};

const want = [
        {day:\"2022/01/01\",count:0},
        {day:\"2022/01/02\",count:10},
        {day:\"2022/01/03\",count:12},
        {day:\"2022/01/04\",count:6},
        {day:\"2022/01/05\",count:8},
    ];

我只是将每个键和值打印到日志中,但不确定如何将它们添加到新对象

let want = new Object();
Object.keys(have).forEach(function (key) {
    console.log(key);
    console.log(have[key]);
});
  • 你可以array.map()对象的钥匙

标签: javascript object


【解决方案1】:

使用常规的for..in 循环,只需遍历键,获取值并推送到空数组

let want = [];
for (let key in have) {
    want.push({
        day: key,
        count: obj[key]
    })
}

【讨论】:

    【解决方案2】:

    您可以尝试使用array.map,方法是占用对象条目,例如,

    const have = {
        "2022/01/01":0, 
        "2022/01/02":10, 
        "2022/01/03":12, 
        "2022/01/04":6, 
        "2022/01/05":8
    };
    
    const want = Object.entries(have).map(item => ({
      day: item[0],
      count: item[1]
    }));
    
    console.log(want)

    【讨论】:

      【解决方案3】:

      遍历键并将它们映射到一个新数组:

      Object.keys(have).map(entry => { return { date: entry, count: have[entry]}})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-14
        • 2018-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多