两个数组如何匹配合并成

      cameraTypeList: [
        { title: "道路沿线", bg: "dlyx-btn", type: "1" },
        { title: "桥梁", bg: "mj-btn", type: "2" },
        { title: "隧道", bg: "qd-btn", type: "3" },
        { title: "ETC门架", bg: "etc-btn", type: "7" },
        { title: "收费站", bg: "sfz-btn", type: "5" },
        { title: "服务区", bg: "fwq-btn", type: "6" },
        { title: "加油站", bg: "online-btn", type: "9" },
        { title: "其它", bg: "qt-btn", type: "4" }, 
      ],
      cameraClassifyCount:[
        {  classify: "1" ,count:"12344"},
        {  classify: "2" ,count:"2321"},
        {  classify: "3" ,count:"333"},
        {  classify: "7" ,count:"123"},
        {  classify: "5" ,count:"444"},
        {  classify: "6" ,count:"666"},
        {  classify: "9" ,count:"111"},
        {  classify: "4" ,count:"222"}, 
      ],

根据 type = classify 想把 count 数据匹配加到第一个数组里。

cameraTypeList: [
        { title: "道路沿线", bg: "dlyx-btn", type: "1" , count:"12344" },
        { title: "桥梁", bg: "mj-btn", type: "2" , count:"2321" },
        { title: "隧道", bg: "qd-btn", type: "3" , count:"333" },
        { title: "ETC门架", bg: "etc-btn", type: "7" , count:"123" },
        { title: "收费站", bg: "sfz-btn", type: "5" , count:"444" },
        { title: "服务区", bg: "fwq-btn", type: "6" , count:"666" },
        { title: "加油站", bg: "online-btn", type: "9" , count:"111" },
        { title: "其它", bg: "qt-btn", type: "4" , count:"222" }, 
      ],
阅读 1.8k
2 个回答
let obj = {cameraTypeList: [
        { title: "道路沿线", bg: "dlyx-btn", type: "1" },
        { title: "桥梁", bg: "mj-btn", type: "2" },
        { title: "隧道", bg: "qd-btn", type: "3" },
        { title: "ETC门架", bg: "etc-btn", type: "7" },
        { title: "收费站", bg: "sfz-btn", type: "5" },
        { title: "服务区", bg: "fwq-btn", type: "6" },
        { title: "加油站", bg: "online-btn", type: "9" },
        { title: "其它", bg: "qt-btn", type: "4" }, 
      ],
      cameraClassifyCount:[
        {  classify: "1" ,count:"12344"},
        {  classify: "2" ,count:"2321"},
        {  classify: "3" ,count:"333"},
        {  classify: "7" ,count:"123"},
        {  classify: "5" ,count:"444"},
        {  classify: "6" ,count:"666"},
        {  classify: "9" ,count:"111"},
        {  classify: "4" ,count:"222"}, 
      ]};

let classifyCountMap = obj.cameraClassifyCount.reduce((acc,{classify,count})=>(acc[classify] = count,acc),{});
//{1: '12344', 2: '2321', 3: '333', 4: '222', 5: '444', 6: '666', 7: '123', 9: '111'}
// 合并到新数组
obj.cameraTypeList.map(item=>({...item,count:classifyCountMap[item.type]}));
// 修改原数组
obj.cameraTypeList.forEach(item=>item.count = classifyCountMap[item.type]);
console.log(obj.cameraTypeList);

image.png

const cameraTypeList = [
      { title: "道路沿线", bg: "dlyx-btn", type: "1" },
      { title: "桥梁", bg: "mj-btn", type: "2" },
      { title: "隧道", bg: "qd-btn", type: "3" },
      { title: "ETC门架", bg: "etc-btn", type: "7" },
      { title: "收费站", bg: "sfz-btn", type: "5" },
      { title: "服务区", bg: "fwq-btn", type: "6" },
      { title: "加油站", bg: "online-btn", type: "9" },
      { title: "其它", bg: "qt-btn", type: "4" }
    ];
    const cameraClassifyCount = [
      { classify: "1", count: "12344" },
      { classify: "2", count: "2321" },
      { classify: "3", count: "333" },
      { classify: "7", count: "123" },
      { classify: "5", count: "444" },
      { classify: "6", count: "666" },
      { classify: "9", count: "111" },
      { classify: "4", count: "222" }
    ];
    const res = cameraTypeList.map(item => {
      const { count = 0 } = cameraClassifyCount.find(r => r.classify === item.type) || {};
      return { ...item, count };
    });
    console.log(res);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题