为了账号安全,请及时绑定邮箱和手机立即绑定

从对象数组中的每个对象复制值

从对象数组中的每个对象复制值

千巷猫影 2021-11-18 21:20:49
问题:给定一个对象数组,我想通过更改其 KEYS 的名称将每个对象复制到一个新数组。我正在尝试转换此对象:  items: [    {      "A": "Q1234",      "B": "W1234",      "C": 19.9,      "D": 2    },    {      "A": "Q1234",      "B": "W1234",      "C": 19.9,      "D": 2    },对此:  items: [    {      "id": "Q1234",      "power": "W1234",      "health": 19.9,      "mana": 2    },    {      "id": "Q1234",      "power": "W1234",      "health": 19.9,      "mana": 2    },我尝试了以下方法,但它不起作用:let replaceAll = () => {  request.responseText.replace('A','id')  request.responseText.replace('B','power')  request.responseText.replace('C','health')  request.responseText.replace('D','mana')}request.responseText 输出:{"id":941282,"items":[{"id":117991,"power":6.5000,"health":102351,"mana":6},{"id":118993,"power":2.5000,"health":103353,"mana":1},{"id":128464,"power":11.6400,"health":112825,"mana":1}]}"const _myItens = JSON.parse(request.responseText)
查看完整描述

2 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

您可以使用Array.map()、解构对象并使用别名创建具有新名称的变量,然后您可以使用速记属性名称重建对象:


const items = [{"A":"Q1234","B":"W1234","C":19.9,"D":2},{"A":"Q1234","B":"W1234","C":19.9,"D":2}]


const result = items.map(({ A: id, B: power, C: health, D: mana }) => ({

  id,

  power,

  health,

  mana

}))


console.log(result)


查看完整回答
反对 回复 2021-11-18
?
SMILET

TA贡献1796条经验 获得超4个赞

一旦输入被固定以便可以解析JSON,创建一个函数,其将所述A,B,C,D的对象的键入id,power等的键,并.map在该功能中的每个对象:


const responseText = `{ "items": [

    {


      "A": "Q1234",

      "B": "W1234",

      "C": 19.9,

      "D": 2

    },

    {

      "A": "Q1234",

      "B": "W1234",

      "C": 19.9,

      "D": 2

    }]}`;

const input = JSON.parse(responseText);

const keyMap = {

  A: 'id',

  B: 'power',

  C: 'health',

  D: 'mana'

};

const transform = shortObj => Object.fromEntries(

  Object.entries(shortObj).map(([key, val]) => [keyMap[key], val])

);

console.log(input.items.map(transform));


查看完整回答
反对 回复 2021-11-18
  • 2 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信