极乐门资源网 Design By www.ioogu.com
今天碰到了一个问题,需要对一个数组矩阵进行去重处理。
比如如下数组矩阵:
[ [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(','));// 上下等价 }
源码在此
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
极乐门资源网 Design By www.ioogu.com
极乐门资源网
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
极乐门资源网 Design By www.ioogu.com
暂无JavaScript中如何对多维数组(矩阵)去重的实现的评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月16日
2024年11月16日
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】
- 陈思安.1990-国语钢琴酒吧5CD【欣代唱片】【WAV+CUE】
- 莫文蔚《莫后年代20周年世纪典藏》3CD[WAV+CUE][2G]
- 张惠妹《我要快乐》华纳[WAV+CUE][1G]
- 罗大佑1982《之乎者也》无法盗版的青春套装版 [WAV+CUE][1G]
- 曾庆瑜1989-款款柔情[日本东芝版][WAV+CUE]
- Scelsi-IntegraledesquatuorsacordesetTrioacordes-QuatuorMolinari(2024)[24bit-WAV]