Maison  >  Article  >  interface Web  >  Comparaison de jeux de cartes, de tableaux et d'objets dans l'apprentissage ES6

Comparaison de jeux de cartes, de tableaux et d'objets dans l'apprentissage ES6

零下一度
零下一度original
2017-06-25 09:23:132001parcourir

Voici une brève comparaison entre eux

Elle est principalement expliquée sous quatre aspects : ajout, suppression, modification et vérification. Pour plus de détails, voir le code .

1. Comparaison entre la carte et le tableau

{  // 数据结构横向对比,增,查,改,删
  let map=new Map();
  let array=[];  // 增
  map.set('t',1);
  array.push({t:1});

  console.info('map-array',map,array);  // 查
  let map_exist=map.has('t');
  let array_exist=array.find(item=>item.t);
  console.info('map-array',map_exist,array_exist);  // 改
  map.set('t',2);
  array.forEach(item=>item.t?item.t=2:'');
  console.info('map-array-modify',map,array);  // 删
  map.delete('t');
  let index=array.findIndex(item=>item.t);
  array.splice(index,1);
  console.info('map-array-empty',map,array);
}

2.

{  // set和array的对比
  let set=new Set();
  let array=[];  // 增
  set.add({t:1});
  array.push({t:1});

  console.info('set-array',set,array);  // 查
  let set_exist=set.has({t:1});
  let array_exist=array.find(item=>item.t);
  console.info('set-array',set_exist,array_exist);  // 改
  set.forEach(item=>item.t?item.t=2:'');
  array.forEach(item=>item.t?item.t=2:'');
  console.info('set-array-modify',set,array);  // 删
  set.forEach(item=>item.t?set.delete(item):'');
  let index=array.findIndex(item=>item.t);
  array.splice(index,1);
  console.info('set-array-empty',set,array);
}

 3. Comparaison de la carte, de l'ensemble et de l'objet

{  // 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-obj',obj,map,set);  // 查  console.info({
    map_exist:map.has('t'),
    set_exist:set.has(item),
    obj_exist:'t' in obj
  })  // 改
  map.set('t',2);
  item.t=2;
  obj['t']=2;
  console.info('map-set-obj-modify',obj,map,set);  // 删除
  map.delete('t');
  set.delete(item);  delete obj['t'];
  console.info('map-set-obj-empty',obj,map,set);
}

 

 Par comparaison, on peut constater que ceux qui peuvent utiliser la carte devraient être utilisés en premier au lieu des tableaux

Compte tenu du caractère unique de. data, envisagez d'utiliser set au lieu d'utiliser Object

Dans le développement futur, vous pouvez donner la priorité à l'utilisation de map et set, et vous pouvez abandonner les tableaux et les objets

 

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn