javascript - 转换 JavaScript 对象

标签 javascript arrays typescript for-loop filter

JavaScript 对象的这种简单(和以前一样,我认为)转换让我失败了。我想用以下方式压平这个对象。

这就是我所拥有的:

{
    "1": {
        "group": "Clothes",
        "brand": {
            "0": {
                "brand_id": "12",
                "brand_name": "Adidas"
            },
            "1": {
                "brand_id": "15",
                "brand_name": "Zara"
            }
        }
    },
    "2": {
        "group": "Cars",
        "brand": {
            "0": {
                "brand_id": "43",
                "brand_name": "Ferrari"
            },
            "1": {
                "brand_id": "51",
                "brand_name": "BMW"
            }
        }
    }
}

这就是我想要得到的

{0: {
    brand_id: "12",
    brand_name: "Adidas",
    group: "Clothes",
}
1: {
    brand_id: "15",
    brand_name: "Zara",
    group: "Clothes",
},
2: {
    brand_id: "43",
    brand_name: "Ferrari",
    group: "Cars",
}
3: {
    brand_id: "51",
    brand_name: "BMW",
    group: "Cars",
}}

我尝试使用 .reduce().map() 但效果不佳。

最佳答案

你可以这样做:

const data = {1: {group: 'Clothes',brand: [{0: {brand_id: '12',brand_name: 'Adidas'}},{1: {brand_id: '15',brand_name: 'Zara'}}]},2: {group: 'Cars',brand: [{0: {brand_id: '43',brand_name: 'Ferrari'}},{1: {brand_id: '51',brand_name: 'BMW'}}]}};
const result = {};

Object.keys(data).forEach(k => {
  data[k].brand.forEach((b, i) => {
    result[Object.keys(result).length] = {
      brand_id: b[i].brand_id,
      brand_name: b[i].brand_name,
      group: data[k].group
    };
  });
});

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 转换 JavaScript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53113837/

相关文章:

javascript - npm console.table 日志没有显示任何内容

javascript - 在移动平台上支持 SVG

Angular 2 中 angular 的 ng-init 替代品

javascript - 有没有办法在不迭代的情况下将匹配元素的 z-index 增加 1?

c# - 没有消息的 WebBrowser 关闭事件

c - 在c中对字符串数组进行排序

javascript - 将 Json 对象数组转换为 angularjs 中的属性值列表

javascript - 使用 next() 使用迭代器对象迭代两个 JavaScript 数组

angular - 在 Angular 中运行 dist 文件夹是否需要 node_modules 和 package.json

javascript - 如何使用异步将错误传递回调用者函数?