减少JS矩阵权重的三种方法
更新时间:2019-07-25 07:29 浏览:701 关闭窗口 打印此页
有很多方法可以解决程序中的问题。
当然,这些不同想法的解决方案在性能和效率方面也非常不同。
以下是三种数字重复数据删除方法:
首先,旅行方法的循环(传统观念)。
最简单和最粗糙的算法创建一个新的空矩阵,然后迭代原始矩阵,将不在新矩阵中的元素添加到新矩阵,最后返回新矩阵。
功能比较(arr){
Varnewarr =[]; //新的空矩阵
(Vari = 0; iarr。
长度i ++){//遵循原始矩阵
Varisadd = true; //设置标签
(Varj = 0;对于jnewarr)
长度j ++){//通过新矩阵
是(arr[i]=== newarr[j]){isadd = false;如果新矩阵中存在当前原始矩阵的元素,则将其标记为未添加并遍历新矩阵。
是(isadd){newarr。
Push(arr[i]);}//如果标记为add,则添加到新矩阵(即,如果在穿过新矩阵后无法找到相同的元素)
Returnnewarr; //返回新数组
二,分类比较法(原始转换)
对于第一种方法,每次都需要遍历新旧矩阵,这是无效的。
在该方法中,首先对原始矩阵进行排序,以便将其与新矩阵的最后一个元素进行比较。这大大提高了效率。
Featuresortarr(arr){
Vararrsort = arr
重新排序(); //排列原始矩阵
Varnewarr =[]; //新的空矩阵
Newarr
按(arrsort[0])。//将有序值的第一个元素添加到新矩阵中
(对于vari = 1; iarrsort)
长度i ++){//遍历有序数组
是的(arrsort[i]!
== newarr[newarr。
长度-1]){newarr。
Push(arrsort[i])}//如果当前元素与新数组的最后一个元素不同,则将其添加到新数组中。
Returnnewarr; //返回新数组
三,对象属性方法(新根)
与前两个方法相比,此方法主要使用对象属性(键值)的不可重复属性,将数组的每个元素分配给新对象,并重复自动覆盖。
最后,检查对象的属性。
函数属性(arr){
Varobj ={}; //新的空对象
Varnewarr =[]; //新的空矩阵
(Vari = 0; iarr。
长度i ++){ob?? ?? J[arr[i]]= null;}//将原始矩阵的元素指定为对象的键
(Varattrinobj){on newarr。
推(数学)。
Floor(attr)); // //遍历对象,删除键值并将其添加到新矩阵
Returnnewarr; //返回新数组