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 {
...