Существует много способов реализации решения: я включил несколько из них
HTML:
<input type="text" name="owner[]" value="Rey">
<input type="text" name="owner[]" value="Rey">
<input type="text" name="owner[]" value="Jan">
Наивное решение:
(function($){
$(document).on("click", ".submit", function() {
var values = $('input[name="owner[]"]');
var stores = [];
values.each(function(index, value){
stores.push($(this).val());
});
for(var i = 0; i <= stores.length; i++) {
for(var j = i; j <= stores.length; j++) {
if(i != j && stores[i] == stores[j]) {
console.log('Duplicates exists!');
}
}
}
});
})(jQuery);
Приведенный выше код реализует два вложенных цикла для поиска дубликатов!
Наивный подход с несколько лучшей производительностью:
(function($){
$(document).on("click", ".submit", function() {
var values = $('input[name="owner[]"]');
var stores = [];
values.each(function(index, value){
stores.push($(this).val());
});
var counts = [];
for(var i = 0; i <= stores.length; i++) {
if(counts[stores[i]] === undefined) {
counts[stores[i]] = 1;
} else {
console.log('Duplicate exsist!');
}
}
});
})(jQuery);
За этим процессом следует подход, применяемый в большинстве стандартных библиотеки или существующие функции с некоторыми дополнительными улучшениями производительности.
Вот еще один способ сделать то же самое с использованием некоторых существующих вспомогательных функций:
(function($){
$(document).on("click", ".submit", function() {
var values = $('input[name="owner[]"]');
var stores = [];
values.each(function(index, value) {
console.log($(this).val());
if ($.inArray($(this).val(), stores) == -1){
console.log('No Duplicate');
stores.push($(this).val());
}else{
console.log('Duplicate Exist');
}
});
});
})(jQuery);