js 二维数组去重(续)

之前写过二维数组去重,今天再翻出来看了看,简直不忍直视,如此垃圾,所以今天重新写一下咯。

二维数组去重,重复问题一定要和哈希联系起来,js和java不一样,没有map(es6有),但是js有object,键是不会重复的,不多说,代码如下:

var matrix=[
        [1,2,3,4],
        [3,4,5,6],
        [1,2,3,4]
    ]
    var removeRepeat=function(arr){
        var obj={};
        for(var i=0;i<arr.length;i++){
            // 判断当前项是否遍历过,是则删除,否存入obj以作对照
            if(obj.hasOwnProperty(arr[i])){
                arr.splice(i,1)
                i++;
            }
            obj[arr[i]]=i;
        }
        return arr;
    }
    removeRepeat(matrix);

继续优化,将该方法存入数组原型链,代码如下:

    var matrix=[
        [1,2,3,4],
        [3,4,5,6],
        [1,2,3,4]
    ]
    Array.prototype.removeRepeat=function(){
        var obj={};
        for(var i=0;i<this.length;i++){
            // 判断当前项是否遍历过,是则删除,否存入obj以作对照
            if(obj.hasOwnProperty(this[i])){
                this.splice(i,1)
                i++;
            }
            obj[this[i]]=i;
        }
        return this;
    }
    console.log(matrix.removeRepeat());

原文地址:https://www.cnblogs.com/xingguozhiming/p/9775711.html

时间: 2024-11-06 09:34:12

js 二维数组去重(续)的相关文章

PHP 二维数组去重

直接上代码 //二维数组去重$data = array(    0 => array('num' => '110', 'name' => 'nick1'),    1 => array('num' => '111', 'name' => 'nick2'),    2 => array('num' => '110', 'name' => 'nick3'),    3 => array('num' => '112', 'name' =>

PHP使用array_unique对二维数组去重处理

array_unique函数就是可以处重的,它具备了这个功能了,下面我们一来看一个关于PHP使用array_unique对二维数组去重处理例子. php 5.2.9 版本增加了array_unique对多维数组的支持,在处理多维数组是需要设置sort_flags参数 一维数组的重复项: 使用array_unique函数即可,使用实例如下: 代码如下 复制代码 <?php $aa = array("apple", "banana", "pear&quo

二维数组去重

function arrayUnique($array2){ foreach ($array2 as $key => $value) { $v=join(',',$v);//二维变成一维 $tmp[]=$v; } //一维数组去重 $tmp=array_unique($tmp); foreach ($tmp as $key => $value) { $tmp[$key]=explode(',', $value); } return $tmp; } 利用内部函数array_unique,将二维数

PHP二维数组去重的方法(保留各个键值的同时去除重复的项)-- 二维数组的唯一性

对于如下二维数组,要求对其进行去重: $arr = array( '0'=>array( 'name'=>'james', 'age'=>30, ), '1'=>array( 'name'=>'susu', 'age'=>26, ), '2'=>array( 'name'=>'james', 'age'=>30, ), 'new'=>array( 'name'=>'kube', 'age'=>37, ), 'list'=>arr

js二维数组与字符串

1. 二维数组:数组中的元素,又引用了另一个数组对象 何时使用:只要保存横行竖列的数据, 具有上下级包含关系的数据, 创建二维数组: 1. var arr=[]; col arr[0]=["保定","唐山","秦皇岛"]; //row arr[1]=["郑州","洛阳","驻马店"]; 2. var arr=[ ["保定","唐山","秦

JS 二维数组

给一个数组元素,赋一个数组的值,那么,这个数组就是“二维数组”. 二维数组,就得用两层循环来实现.也就是说循环套循环. 二维数组的循环,与二维表格的循环一模一样. 二维数组的访问:数组名后跟多个连续的中括号[],第1个中括号[]代表第一维数组,第2个中括号[]代表第二维数组.

JS—二维数组的创建

//二维数组的创建 //方法一: var myarr = new Array(); //先声明一维 for ( var i = 0; i < 2; i++) { //一维长度为2 myarr[i] = new Array(); //再声明二维 for ( var j = 0; j < 3; j++) { //二维长度为3 myarr[i][j] = i + j; // 赋值,每个数组元素的值为i+j } } //方法二: var myarr1 = [ [ 0, 1, 2 ], [ 1, 2,

js二维数组

1.判断是否为二维数组 1 function isMultiArr(arr){ 2 return arr.every(function(element){ 3 return element instanceof Array && element.length == 2; 4 }) 5 } 2.判断某个元素是否在二维数组中(笨方法,效率低,循环嵌套) 1 function getIndex(ele,map){ 2 var res=[]; 3 for(let i=0;i<map.leng

php二维数组去重

方法一:降维去重         if (!$isPidArrKey) {             //降维去重             $temp = array();             foreach ($tmp as $k => $v) {                 $v      = implode(',', $v);                 $temp[] = $v;             }             $temp = array_unique($t