js 实现json对象根据数组排序

已知有一下格式的json数据

var arr={
    A:'11111',
    B:'22222',
    C:'33333',
    D:'44444'
}

和一个包含arrkey的有序数组

var arrIdx=[C,B,D,A];

现在希望arr对象根据arrIdx的顺序排序,得到新的对象

var arr={
    C:'33333',
    B:'22222',
    D:'44444',
    A:'11111'
}

求一个高效的 简洁的写法!

阅读 3.4k
2 个回答
  const obj = {
    A:'11111',
    B:'22222',
    C:'33333',
    D:'44444'
  };
  const arrIdx = ['C','B','D','A'];

  let ret = {};
  arrIdx.forEach((item, index) => {
    ret[arrIdx[index]] = obj[item]
  });
  console.log(ret)

对象是无序的 为什么要排序
不过你有个有序的数组
按顺序输出
arrIdx.forEach(v=>{console.log(arr[v])})
将对象排序不合逻辑

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题