js 对象去重

根据 GongXu 相同去重

const tableData = [
         {
			"rukuriqi": "2023-06-07T10:16:04",
			"GongXu": "0007"
		},
		{
			"rukuriqi": "2023-06-07T10:16:04",
			"GongXu": "0005"
		},
		{
			"rukuriqi": "2023-06-07T10:16:04",
			"GongXu": "0004"
		},
		{
			"rukuriqi": "2023-06-07T10:16:04",
			"GongXu": "0007"
		},
		{
			"rukuriqi": "2023-06-07T10:16:04",
			"GongXu": "0005"
		},
	],   
const uniqueTableData = Array.from(new Set(tableData.map(item => item.GongXu)))
  .map(gongxu => tableData.find(item => item.GongXu === gongxu));

 

解释一下上述代码的思路:首先利用 map() 方法将 tableData 中每个元素的 GongXu 属性抽取出来,得到一个数组;然后将该数组转换为 Set,从而去重;接着再次利用 map() 方法遍历去重后的数组,对于每个不同的 GongXu 值,分别在 tableData 数组中找到第一个该值的元素,从而得到去重后的数组。这里需要注意的是,需要用 Array.from() 方法将 Set 转换为数组。

这样,就可以用很简洁的代码实现去重的功能。

你可能感兴趣的:(javascript,前端,java)