数组中中去掉重复对象

14 篇文章 0 订阅
13 篇文章 0 订阅

// const dataArr = [
{
    id:1,
    name:'测试部'
},
{
    id:2,
    name:'技术部'
},
{
    id:2,
    name:'技术部'
},
{
    id:2,
    name:'技术部'
}
         ]

 

 deteleObject(obj) {

      var uniques = []

      var stringify = {}

      for (var i = 0; i < obj.length; i++) {

        var keys = Object.keys(obj[i])

        keys.sort(function(a, b) {

          return (Number(a) - Number(b))

        })

        var str = ''

        for (var j = 0; j < keys.length; j++) {

          str += JSON.stringify(keys[j])

          str += JSON.stringify(obj[i][keys[j]])

        }

        if (!stringify.hasOwnProperty(str)) {

          uniques.push(obj[i])

          stringify[str] = true

        }

      }

      uniques = uniques

      return uniques

    },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个示例程序,可以在STC8H1K28单片机上使用定时器2生成CP56Time2a格式的日期并存储在数组中: ```c #include <STC8.H> #define TIMER2_HZ 1000 // 定时器2时钟频率 #define TIMER2_MS 1 // 定时器2断周期(单位:毫秒) typedef struct { unsigned char ms; // 毫秒 unsigned char min; // 分钟 unsigned char hour; // 小时 unsigned char day; // 日 unsigned char wday; // 周几 unsigned char mon; // 月份 unsigned char year; // 年份的后两位 } CP56Time2a; volatile CP56Time2a time; // 存储当前时间的结构体 void Timer2Init(void) { AUXR |= 0x04; // 定时器2时钟为Fosc/12 T2L = (65536 - (FOSC / 12 / TIMER2_HZ)) % 256; T2H = (65536 - (FOSC / 12 / TIMER2_HZ)) / 256; ET2 = 1; // 开启定时器2断 TR2 = 1; // 启动定时器2 } void Timer2Isr() interrupt 5 { static unsigned int cnt = 0; cnt += TIMER2_MS; // 累加定时器周期 if (cnt < 1000) { return; // 未满1秒,返回 } cnt -= 1000; // 减去1秒的周期 time.ms++; // 毫秒加1 if (time.ms >= 100) { time.ms = 0; time.min++; // 分钟加1 if (time.min >= 60) { time.min = 0; time.hour++; // 小时加1 if (time.hour >= 24) { time.hour = 0; time.day++; // 日加1 time.wday++; // 周几加1 if (time.wday >= 7) { time.wday = 0; } if (time.day > 31) { time.day = 1; time.mon++; // 月份加1 if (time.mon > 12) { time.mon = 1; time.year++; // 年份的后两位加1 } } } } } } void main() { Timer2Init(); while (1) { // TODO: 处理其他任务 } } ``` 在上面的程序,我们使用定时器2的断周期来累加时间,每次累加1毫秒。当时间达到1秒时,更新时间结构体的各个字段,包括毫秒、分钟、小时、日、周几、月份和年份的后两位。最终得到的时间将存储在`time`结构体,可以通过该结构体来获取和设置日期时间数据。 需要注意的是,上面的程序仅提供了一个基本的时间累加功能,实际应用需要根据实际情况进行修改和扩展。例如,需要考虑闰年、闰秒等特殊情况,同时需要根据不同的时区和夏令时规则来进行时区转换和校准。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值