zoukankan      html  css  js  c++  java
  • JS 数组, 对象的增查改删(多语法对比)

    数据结构横向对比, 增, 查, 改, 删

    建议: 在用数据结构的时候, 优先考虑Map和Set(考虑数据的唯一性), 放弃传统的数组和Object, 特别是比较复杂的数据结构时

    数组

    Map与Array的对比

      let map = new Map()
      let array = []
    
      map.set('t', 1)
      array.push({
        t: 1
      })
    
      console.info('map-array', map, array);
      // map-array Map(1) {"t" => 1} [{t: 1}]
    
      let map_exist = map.has('t')
      let array_exist = array.find(item => item.t)
    
      console.info('map-array', map_exist, array_exist)
      // map-array true {t: 1}
    
      map.set('t', 2)
      array.forEach(item => item.t ? item.t = 2 : '')
    
      console.info('map-array-modify', map, array);
      // map-array-modify Map(1) {"t" => 2}  [{t: 2}]  
    
      map.delete('t')
    
      let index = array.findIndex(item => item.t)
      array.splice(index, 1)
    
      console.info('map-array-empty', map, array)
      // map-array-empty Map(0) {} []
    }
    

    Set与Array的对比

      let set = new Set()
      let array = []
    
      set.add({
        t: 1
      })
      array.push({
        t: 1
      })
    
      console.info('set-array', set, array);
      // set-array Set(1) {[[Entries]]: [{t: 1}]}  [{t: 1}] 
    
      let set_exsit = set.has({
        t: 1
      })
      let array_exist = array.find(item => item.t)
    
      console.info('set-array', set_exsit, array_exist);
      // set-array false {t: 1}
    
      set.forEach(item => item.t ? item.t = 2 : '')
      array.forEach(item => item.t ? item.t = 2: '')
      
      console.log('set-array-modify', set, array);
      // set-array-modify Set(1) {[[Entries]]: [{t: 2}]}  [{t: 2}] 
    
      set.forEach(item => item.t ? set.delete(item) : '');
    
      let index = array.findIndex(item => item.t)
      array.splice(index, 1)
    
      console.log('set-array-empty', set, array);
      // set-array-empty Set(0) {[[Entries]]: []} []
    }
    

    对象

    Map, Set, Object的对比

      let item = {
        t: 1
      }
      let map = new Map()
      let set = new Set()
      let obj = {}
    
     map.set('t', 1)
     set.add(item)
     obj['t'] = 1
    
     console.info('map-set-obh', obj, map, set)
     // map-set-obh {t: 1} Map(1) {"t" => 1} Set(1) {{t: 1}}
    
      console.info({
        map_exist: map.has('t'),
        set_exsit: set.has(item),
        obj_exsit: 't' in obj
      })
      // {map_exist: true, set_exsit: true, obj_exsit: true}
    
      map.set('t', 2)
      item.t = 2
      obj['t'] = 2
    
      console.info('map-set-obj-modify', map, set, obj)
      // map-set-obj-modify Map(1) {"t" => 2} Set(1) {{t: 2}} {t: 2}
    
      map.delete('t')
      set.delete(item)
      delete obj['t']
    
      console.info('map-set-obj-empty', map, set, obj)
      // map-set-obj-empty Map(0) {} Set(0) {} {}
    
  • 相关阅读:
    Java安装以及环境变量配置
    IPython绘图和可视化---matplotlib
    Tensorboard可视化(关于TensorFlow不同版本引起的错误)
    Tensorboard可视化
    关于Tensorflow安装opencv和pygame
    perl将json转换成xml
    cnblogs终于把以前内容的管理权还给我了~
    final评论2
    final评论1
    psp
  • 原文地址:https://www.cnblogs.com/izhaong/p/12154298.html
Copyright © 2011-2022 走看看