问答

请教一个给数组添加元素的问题

作者:admin 2021-04-22 我要评论

现在有这样一个数组arr: `[ {type: 1, day: 13, hours: 11, minutes: 21}, {type: 3, day: 33, hours: 14, minutes: 51}, {type: 5, day: 33, hours: 14, minut...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

现在有这样一个数组arr:
`[
{type: 1, day: 13, hours: 11, minutes: 21},
{type: 3, day: 33, hours: 14, minutes: 51},
{type: 5, day: 33, hours: 14, minutes: 51},
{type: 6, day: 33, hours: 14, minutes: 51}
]`
想实现这样的转换:
现在type缺少2和4,希望增加两项,变成下面的格式,就是已type的值为标准,从1开始,
前面缺少几个值,就增加几项空字符串
`[
{type: 1, day: 13, hours: 11, minutes: 21},
{type: '', day: '', hours: '', minutes: ''},
{type: 3, day: 33, hours: 14, minutes: 51},
{type: '', day: '', hours: '', minutes: ''},
{type: 5, day: 32, hours: 16, minutes: 21},
{type: 6, day: 31, hours: 44, minutes: 55}
]`
请问一下大家这种格式要怎么转化

###
let t = [
 {type: 1, day: 13, hours: 11, minutes: 21},
 {type: 3, day: 33, hours: 14, minutes: 51},
 {type: 5, day: 33, hours: 14, minutes: 51},
 {type: 6, day: 33, hours: 14, minutes: 51}
];

// 补全方法函数
let complement = function (arr) {
 let res = [], lastType = 1;
 arr.forEach(obj => {
    let type = obj.type;
    while (type > lastType) {
        res.push({type: '', day: '', hours: ''});
        lastType++;
    }
    res.push(obj);
    lastType++;
 })
 return res;
}

// 测试打印
console.log(complement(t));
###

![上传中...]()

demo([
  {type: 1, day: 13, hours: 11, minutes: 21},
  {type: 4, day: 33, hours: 14, minutes: 51},
  {type: 6, day: 25, hours: 26, minutes: 14}
])

function demo (list) {
  if(list.length) {
    // 先排个序
    list.sort((a, b) => a.type - b.type)
    let preType = list[0].type, item;
    for(let index = 1; index < list.length; index++) {
      item = list[index]
      if(item.type - preType > 1) {
        preType++
        list.splice(index, 0, { type: '', day: '', hours: '', minutes: '' })
      } else {
        preType = item.type
      }
    }
  }
  return list;
}

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 请教一个给数组添加元素的问题

    请教一个给数组添加元素的问题

  • 前端如何让不同的项目使用同一套组件库

    前端如何让不同的项目使用同一套组件库

  • spring-data-mongodb 中如何查询并拆分

    spring-data-mongodb 中如何查询并拆分

  • 小程序如何全局替换&lt;br /&g

    小程序如何全局替换&lt;br /&g

腾讯云代理商
海外云服务器