Javascript 在RJS中应用arrayOf(';schema';)之前如何展平数组

Javascript 在RJS中应用arrayOf(';schema';)之前如何展平数组,javascript,normalizr,Javascript,Normalizr,假设一个用户喜欢很多猫,当询问用户的最爱时,api端点会给出猫的列表: const catsList = [{id:1,name:"catA"},{id:2,name:"catB"},{id:3,name:"catC"}]; // ex: GET http://app.com/api/favorites => results in following json {favorites:[{id:2,name:"catB"},{id:3,name:"catC"}]} // the res

假设一个用户喜欢很多猫,当询问用户的最爱时,api端点会给出猫的列表:

const catsList = [{id:1,name:"catA"},{id:2,name:"catB"},{id:3,name:"catC"}];

// ex: GET http://app.com/api/favorites =>  results in following json
{favorites:[{id:2,name:"catB"},{id:3,name:"catC"}]} 
// the result is the list of cats 

//and normalizr schema 
const cats = new Schema('cats');
const favorites = new Schema('favorites');
现在我的问题是,我将如何规范化这些实体,从而得到以下结果

  entities.favorites=[2,3]; //2 and 3 are cats
  entities.cats=[{id:1,name:"a"},{id:2,name:"b"},{id:3,name:"c"}];
我如何使用normalizer实现这一点

const cats = new Schema('cats');

const response = {
  favorites: [{
    id: 2,
    name: "catB"
  }, {
    id: 3,
    name: "catC"
  }]
}

const normalized = normalize(response, {
  favorites: arrayOf(cats)
})
标准化的
值如下

{
  result: {
    favorites: [2, 3]
  },
  entities: {
    cats: {
      2: {
        id: 2,
        name: "catB"
      }, {
        id: 3,
        name: "catC"
      }
    }
  }
}
实际上,非常重要的一点是,
规范化。实体
是一个对象,而不是一个数组,否则按ID查询会很慢

在这一点上,您可以随意变换此表示