首页 > 解决方案 > JS:如何过滤对象属性并成为关键

问题描述

我有一个这样的对象

"field": {
      "zh":{ 
          "game_code" : "游戏", 
          "transfer_amount" : "金额", 
          "uni_id" : "流水号", 
          "create_time" : "建立时间"
      },
      "en": { 
          "game_code" : "GameCode", 
          "transfer_amount" : "Amount", 
          "uni_id" : "UniqId.", 
          "create_time" : "CreateTime"
      }
    }
}

我想像这样格式化数据

data: [
  {
    game_code: {
      zh: '游戏',
      en: 'GameCode'
    },
  },
  {
    transfer_amount: {
      zh: '金额',
      en: 'Amount'
    }
  }
]

做这个的最好方式是什么 ?谢谢(我编辑了我想格式化数据代码)

标签: javascriptobject

解决方案


首先,获取结果数据的所有键,然后遍历data.betlog_field语言键?这是代码:

const data: any = {
  "betlog_field": {
    "zh": {
      "game_code": "游戏",
      "transfer_amount": "金额",
      "uni_id": "流水号",
      "create_time": "建立时间"
    },
    "en": {
      "game_code": "GameCode",
      "transfer_amount": "Amount",
      "uni_id": "UniqId.",
      "create_time": "CreateTime"
    }
  }
};

let result: any = { data: [] };
console.clear();
let keys = Object.keys(data.betlog_field.zh);
keys.forEach(key => {
  let item: any = {};
  Object.keys(data.betlog_field).forEach((lan: any) => {
    item[lan] = data.betlog_field[lan][key];
  });

  result.data.push({[key]: item});
});

console.log(result);


推荐阅读