JSFiddle - React, Tailwind, and code Playground

by pierian_design

JavaScript

function rdMakeGetKeyByColNums_(aRowNums) {

  //console.log(aRowNums); //[0, 1]

  var dropCaseIfNeeded = (function () {

      return function (sValue) {
        sValue = '' + sValue;
        return sValue.toLowerCase();
      };

  })();
  
  return function (aRow) {

    var sResult = '';
    var bIsEmptyRow = true;
    
    for (var i = 0; i < aRowNums.length; i++) { //2 колонки (неправильное название переменной aRowNums)
      var r = '' + aRow[aRowNums[i]]; //каждое значение приводится к строке (слева направо сверху вниз)
/*
			console.log(r);
      325
      525
      3 по 325
      5434
      2 по 325      
*/
      sResult += r.length + '' + dropCaseIfNeeded(r);
/*      
      console.log(sResult);
      3325
      33253525
      3325
      33253325
      3325
      332545434
      3325
      33253325
*/
    }

    return sResult + 'END';
/*
    console.log(sResult + 'END');
    33253525END
    33253325END
    332545434END
    33253325END
*/
  }
}

function rdFindDuplicates() {

	var bTableHasHeaders = false;
  var aValues = [[325.0, 525.0], [325.0, 325.0], [325.0, 5434.0], [325.0, 325.0]];

  var fGetKeyByCol = rdMakeGetKeyByColNums_([0, 1]);

  var oDuplicates = {};
  for (var i = (bTableHasHeaders) ? 1 : 0; i < aValues.length; i++) { //4 строки
  
    var sKey = fGetKeyByCol(aValues[i]);

    if (typeof oDuplicates[sKey] !== 'object') {
      oDuplicates[sKey] = [];
    }

    oDuplicates[sKey].push(i);
/*
    console.log(oDuplicates); //sKey с массивом индексов, принадлежащим им
    33253325END: (2) [1, 3]
    33253525END: [0]
    332545434END: [2] 
*/    
  }

  var oReturn = {
    'oDuplicates': oDuplicates,
  };

  return oReturn;
};

//console.log(rdFindDuplicates());
var oReturn = rdFindDuplicates();

var handleDuplicates = function (oReturn, oOptions, fDoNextStep) {

  var oDuplicates = oReturn.oDuplicates;

  for (var k in oDuplicates) {
    if (1 >= oDuplicates[k].length) {
      delete oDuplicates[k];
    } else {
     ...