Js对比生成新json。

a= ['a','c','b'];
b= [
  {'n':'a','age':1},
  {'n':'b','age':2},
  {'n':'c','age':3}
]

生成如下JSON

c= {
  a:{'n':'a','age':1},
  b:{'n':'b','age':2},
  c:{'n':'c','age':3}
}
阅读 2.2k
2 个回答

不知道这种是不是你期望的结果:

var a= ['a','c','b'];
var b= [
  {'n':'a','age':1},
  {'n':'b','age':2},
  {'n':'c','age':3}
]

var c = a.sort((p,n) => p.charCodeAt() - n.charCodeAt())
    .reduce((obj, k, i) => {
        var t = b.find(item => item.n === k);

        // 没有找到指定的数据
        if (!t) return obj;

        // 浅拷贝对象
          obj[k] = {...t}
          return obj;
    }, {})

不知道你要干什么,但是两重循环应该可以搞定,不行就三重

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