首页 > 解决方案 > 如何从js中的数组中删除具有共同值的对象?

问题描述

有一个像这样的对象数组

   "medios":[  
      {  
         "Key":"1",
         "Text":"Cheque"
      },
      {  
         "Key":"2",
         "Text":"Tarjeta de Crédito"
      },
      {  
         "Key":"3",
         "Text":"Tarjeta de Crédito"
      },
      {  
         "Key":"4",
         "Text":"Tarjeta de Crédito"
      },
      {  
         "Key":"5",
         "Text":"Transferencia Bancaria"
      }
   ]

我需要能够删除具有相同“文本”值的对象(例如,Tarjeta de Crédito),直到我只保留其中一个。知道如何实现这一目标吗?

我尝试在数组上使用循环,但不知道如何删除特定对象

标签: javascriptarraysobject

解决方案


您可以使用 aMap来键入您的数据,Text以便您只会获得唯一的条目。然后从该映射中获取值以再次重建您的数组:

const obj = {"medios":[{ "Key":"1","Text":"Cheque"},{ "Key":"2","Text":"Tarjeta de Crédito"},{ "Key":"3","Text":"Tarjeta de Crédito"},{ "Key":"4","Text":"Tarjeta de Crédito"},{  "Key":"5","Text":"Transferencia Bancaria"}]};

obj.medios = Array.from(new Map(obj.medios.map(m => [m.Text, m])).values());

console.log(obj.medios);  


推荐阅读