JSFiddle - React, Tailwind, and code Playground
HTML
<div> <!--first combination-->
<input type="text" name="color[]" value="red" />
<input type="text" name="size[]" value="small" />
<input type="text" name="kind[]" value="plastic" />
</div>
<div> <!--second combination-->
<input type="text" name="color[]" value="red" />
<input type="text" name="size[]" value="big" />
<input type="text" name="kind[]" value="plastic" />
</div>
<div> <!--third combination-->
<input type="text" name="color[]" value="red" />
<input type="text" name="size[]" value="small" />
<input type="text" name="kind[]" value="plastic" />
</div>
JavaScript
var items = new Array();
getItemsArr();
$(document).keyup(function(){
getItemsArr();
});
function getItemsArr(){
$("div").each(function(i){
items[i] = new Array();
$(this).find(':input');
$(this).find(':input').each(function(j){
items[i][j] = $(this).val();
});
});
findDuplicateCombination(items);
}
function findDuplicateCombination(arr) {
var uniques = [];
var itemsFound = {};
for(var i = 0, l = arr.length; i < l; i++) {
var stringified = JSON.stringify(arr[i]);
if(itemsFound[stringified]) {
console.log("duplicate combination detected at combination : " +([i+1]));
alert("duplicate combination detected at combination : " +([i+1]));
continue; }
uniques.push(arr[i]);
itemsFound[stringified] = true;
}
return uniques;
}