var arr1 = ["03-26", "03-27", "03-28","03-29"]
var arr2 = [
{
"type": "6",
"name": "哈哈哈",
"date": [
{
"time": "03-27",
"num": "5"
},
{
"time": "03-28",
"num": "13"
},
]
},
{
"type": "1",
"name": "嘻嘻嘻",
"date": [
{
"time": "03-27",
"num": "1"
},
]
},
]
有两个数组arr1和arr2,我想把arr2变成这样
arr2 = [
{
"type": "6",
"name": "哈哈哈",
"date": [
{
"time": "03-26",
"num": "0"
},
{
"time": "03-27",
"num": "5"
},
{
"time": "03-28",
"num": "13"
},
{
"time": "03-29",
"num": "0"
}
]
},
{
"type": "1",
"name": "嘻嘻嘻",
"date": [
{
"time": "03-26",
"num": "0"
},
{
"time": "03-27",
"num": "1"
},
{
"time": "03-28",
"num": "0"
},
{
"time": "03-29",
"num": "0"
}
]
},
]
js 数组合并去重、补齐空缺位
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 不知道这样符合不符合你的需求~
var arr1 = ["03-26", "03-27", "03-28", "03-29"] var arr2 = [ { "type": "6", "name": "哈哈哈", "date": [ { "time": "03-27", "num": "5" }, { "time": "03-28", "num": "13" }, ] }, { "type": "1", "name": "嘻嘻嘻", "date": [ { "time": "03-27", "num": "1" }, ] }, ] // 有两个数组arr1和arr2,我想把arr2变成这样 let arr3 = [ { "type": "6", "name": "哈哈哈", "date": [ { "time": "03-26", "num": "0" }, { "time": "03-27", "num": "5" }, { "time": "03-28", "num": "13" }, { "time": "03-29", "num": "0" } ] }, { "type": "1", "name": "嘻嘻嘻", "date": [ { "time": "03-26", "num": "0" }, { "time": "03-27", "num": "1" }, { "time": "03-28", "num": "0" }, { "time": "03-29", "num": "0" } ] }, ] // 根据上述内容新建合并方法 /** * 合并数组 * @param {string[]} t1 代表第一种类型的数组 * @param {{ * type:string, * name:string, * date:{ * time:string, * num:string * }[] * }[]} t2 代表第二种类型的数组 */ function mergeArray(t1, t2) { for (let i = 0; i < t2.length; i++) { for (let j = 0; j < t1.length; j++) { // 如果不存在的话,塞入数组中 if (!t2[i].date.find(a => a.time == t1[j])) t2[i].date.push({ time: t1[j], num: "0" }) } // 做一个简单的排序 t2[i].date.sort((a, b) => a.time.replace(/-/, '') - b.time.replace(/-/, '')); } return t2; } // 测试 console.log(JSON.stringify(mergeArray(arr1, arr2)) == JSON.stringify(arr3));
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私
- ¥15 ROS系统搭建请教(跨境电商用途)