Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在normalizer中重命名结果属性_Javascript_Normalizr - Fatal编程技术网

Javascript 在normalizer中重命名结果属性

Javascript 在normalizer中重命名结果属性,javascript,normalizr,Javascript,Normalizr,给定数据如下: { id: 1, ownerName: 'bob', devices: [ { id: 2 }, { id: 3 } ] } 如何将其转换为以下对象 { result: 1, entities: { owners: { 1: { id: 1, ownerName: 'bob', deviceIds: [2, 3] }

给定数据如下:

{
  id: 1,
  ownerName: 'bob',
  devices: [
    {
      id: 2
    },
    {
      id: 3
    }
  ]
}
如何将其转换为以下对象

{
  result: 1,
  entities: {
    owners: {
      1: {
        id: 1,
        ownerName: 'bob',
        deviceIds: [2, 3]
      }
    },
    devices: {
      2: {
        id: 2
      },
      3: {
        id: 3
      }
    }
  }
}

使用normalizer?我不知道如何在返回的结果中将
设备
更改为
设备ID

您可以使用流程策略进行此操作。它允许您在处理数据之前对其进行操作。只需返回对象的副本,其中的键已从
processStrategy()
方法更改

const Device = schema.Entity('devices');

const Owner = schema.Entity(
    'owners',
    {
        deviceIds: [ Device ]
    },
    {
        processStrategy: value => ({
            id: value.id,
            ownerName: value.ownerName,
            deviceIds: value.devices
        })
    }
);