ホームページ  >  記事  >  ウェブフロントエンド  >  ES6 学習におけるマップセット、配列、オブジェクトの比較

ES6 学習におけるマップセット、配列、オブジェクトの比較

零下一度
零下一度オリジナル
2017-06-25 09:23:131984ブラウズ

簡単に比較してみます

主に追加、削除、変更、確認の4つの側面で説明します 詳細はコードをご覧ください

1.マップと配列の比較

{  // 数据结构横向对比,增,查,改,删
  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. マップ、セット、オブジェクトの比較

{  // 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);
}

、地図を使用できる人がいることがわかります配列の代わりに最初に使用する必要があります

データの一意性を考慮して、Objet の代わりに set の使用を検討してください

将来の開発では、map と set の使用を優先し、配列とオブジェクトを放棄することができます。

以上がES6 学習におけるマップセット、配列、オブジェクトの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。