Как удалить дубликаты в спаршеном .xlsx 2D массиве?

Поддержка
  • Дано:

    Есть .xlsx файл в котором нужно проверить столбец А на дубли и удалить всю строку где есть дубль.
    22ф.jpg

    На скриншоте выделил красном что нужно удалить:
    222ы.jpg

    Как пытаюсь это решить:
    Получаю 2D массив действием: "Читать лист" (2D list) с помощью excel-модуля

    Получаю массив:

    SODERGIMOE_LISTA_V_2D: [
       [
           "q"
           "q1"
           "q1n"
       ]
       [
           "q"
           "q2"
           "q2n"
       ]
       [
           "w"
           "w1"
           "w1n"
       ]
       [
           "e"
           "e1"
           "e1n"
       ]
       [
           "r"
           "r1"
           "r1n"
       ]
       [
           "r"
           "r2"
           "r2n"
       ]
       [
           "r"
           "r3"
           "r3n"
       ]
       [
           "t"
           "t1"
           "t1n"
       ]
       [
           "y"
           "y1"
           "y1n"
       ]
    ]
    

    Вопрос:

    Как удалить полностью строку с дублем? Если у меня в столбце А для q и r - есть дубли,
    но в строке этого дубля (ячейки B и С ) - данные отличаются(((....... и естессно "Список" --> "Удалить дубликаты" не удаляет строку с дублем в 2D массиве.

  • Должно работать

    var arr = [], f;
    for(var i=0;i<VAR_SODERGIMOE_LISTA_V_2D.length;i++){
        f = true;
        for(var j=0;j<arr.length;j++){
            if(VAR_SODERGIMOE_LISTA_V_2D[i][0] == arr[j][0]){
                f = false;
                break;
            }
        }
        if(f){
            arr.push(VAR_SODERGIMOE_LISTA_V_2D[i]);
        }
    }
    VAR_SODERGIMOE_LISTA_V_2D = arr;
    
  • @SimpleBot said in Как удалить дубликаты в спаршеном .xlsx 2D массиве?:

    Должно работать

    var arr = [], f;
    for(var i=0;i<VAR_SODERGIMOE_LISTA_V_2D.length;i++){
        f = true;
        for(var j=0;j<arr.length;j++){
            if(VAR_SODERGIMOE_LISTA_V_2D[i][0] == arr[j][0]){
                f = false;
                break;
            }
        }
        if(f){
            arr.push(VAR_SODERGIMOE_LISTA_V_2D[i]);
        }
    }
    VAR_SODERGIMOE_LISTA_V_2D = arr;
    

    спасибо. отлично чистит 2d-массив от дублей по выше описанному алгоритму. Может тоже будет кому-то полезно. код нужно в ставить в кубик "Инструменты" -> "Выполнить код"