JavaScript中如何对多维数组(矩阵)去重的实现
网络编程 2021-07-04 15:02www.168986.cn编程入门
这篇文章主要介绍了JavaScript中如何对多维数组(矩阵)去重的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们狼蚁网站SEO优化随着长沙网络推广来一起学习学习吧
今天碰到了一个问题,需要对一个数组矩阵进行去重处理。
比如如下数组矩阵:
[ [1, 2, 3], [2, 3, 4], [2, 1, 3], [5, 6, 7] ]
接下来是去重处理的方法。
1.适用于纯数字数组矩阵和字符数字数组矩阵
// 本节用例: // 1.纯数字数组矩阵 [ [1, 2, 3], [2, 3, 4], [2, 1, 3], [5, 6, 7] ] // 2.字符数字数组矩阵 [ ['1', '2', '3'], ['2', '3', '4'], ['2', '1', '3'], ['5', '6', '7'] ] // 如果数字和字符数字混合的话,类似于 [1, '2', 3] 和 ['1', '2', 3] 会被认为是等价的...
主要利用对象属性名比较的方法,因为一个对象中每个属性的属性名是唯一的。
function unique(matrix) { let obj = {}; let res = []; matrix.map(item => { item.sort((a, b) => a - b); if (!obj.hasOwnProperty(item)) {// 判断对象中是否有这个属性名 obj[item] = item; res.push(item); } }) return res; }
上面的方法可以进一步优化成为:
// 这样更简洁 function unique(matrix) { let res = {}; matrix.map(item => { item.sort((a, b) => a - b); res[item] = item; }) return Object.values(res); }
2.适用于纯文字字符数组矩阵
// 本节用例: // 纯文字字符数组矩阵 [ ["你的", "我", "它"], ["我", "你的", "它"], ["一", "二", "三"], ["三", "二", "一"], ["你d", "a", "它"], ["a", "你d", "它"], ["one", "two", "three"], ["three", "two", "one"] ]
分别利用对象属性名比较和ES6语法中的Set
(1) 利用属性名比较,将上面的方法稍微改动一下就可以实现
// 数组元素可能位置不同但元素内容相同,所以必须按照某一顺序对其进行排序,这里按首字母对字符串进行排序 function _unique(matrix) { let res = {}; matrix.map(item => { item.sort((a, b) => a.localeCompare(b)); res[item] = item; }) return Object.values(res); }
(2) 利用ES6语法中的Set,Set中的每个值都是唯一的
function _unique(matrix) { let res = []; matrix.map(item => { res.push(item.sort((a, b) => a.localeCompare(b)).toString()); }) // return Array.from(new Set(res)).map(item => item.split(',')) return [...new Set(res)].map(item => item.split(','));// 上下等价 }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 机械手焊接机器人编程 机械手焊接设备编程
- vb数据库编程实例,vb做数据库
- tiobe世界编程语言排行榜,全球编程语言排行
- 成都java编程培训 成都it编程培训中心
- 编程基础培训,编程基础知识培训
- flash游戏编程基础教程,flash游戏开发教程
- 不会英语能学编程吗 不会英语可以学程序员吗
- 爱心代码编程C语言 爱心代码编程c语言公式
- c语言编程学习入门 c语言编程快速入门
- 西门子plc编程培训 西门子plc编程培训班
- 哪里可以学编程 台州哪里可以学编程
- 少儿编程哪个好 少儿编程哪个品牌好
- 编程是什么意思,图形编程是什么意思
- c语言编程软件下载,c语言编程软件在哪下载
- java编程软件下载,java编程下载手机版
- ug编程培训学校,ug编程培训教程