我创建了这个函数来在Web表单中查找重复的条目,我需要的是将每个重复项的索引号存储在另一个数组中。到
function arrTieneDups( arr )
{
var xi, xj, xn;
n=arr.length;
for (xi=0; xi<n; xi++) {
for (xj=xi+1; xj<n; xj++) {
if (arr[xi]==arr[xj]) return true;
} }
return false;
}
循环遍历新数组并使用它......
for (var i in arr2)
{
$( "input[name$='matricula"+i+"']" ).addClass("errorformalta");
$( "input[name$='matricula"+i+"']" ).addClass("errorinputtext");
$( "input[name$='matricula"+i+"']" ).after('<span style="display: inline; margin-left: -20px; opacity: 1;font-size:48px;color:red;font-weight:800;" class="pyr_error_form">!</span>');
}
我现在也在做...通过Orcuro代码。但结果并不像预期的那样。我需要“var it”作为重复项的索引号。例如:2,4,6 我想要的是,向用户指出他们引入重复数据的字段。
for (var it in arrTieneDups(matriculas) )
{
$( "input[name$='matricula"+it+"']" ).addClass("errorformalta");
$( "input[name$='matricula"+it+"']" ).addClass("errorinputtext");
$( "input[name$='matricula"+it+"']" ).after('<span style="display: inline; margin-left: -20px; opacity: 1;font-size:48px;color:red;font-weight:800;" class="pyr_error_form">!</span>');
error_validation=1;
error_top=1;
error_mat_formato="</br>! Matrícula(s) inválida(s)";
error_look="</br>Revise también los siguientes errores:";
all_ok=1;
}
答案 0 :(得分:1)
我建议不要在找到副本时返回true,只是将该索引(在你的情况下为xi)存储到duplicates数组中,并在循环返回该数组之后。
也变量xn不会在我看到的地方使用
答案 1 :(得分:1)
您可以将此“重复对象”数组作为参数传递。有点像...
function arrTieneDups( arr )
{
var xi, xj;
var dupeArray = [];
n=arr.length;
for (xi=0; xi<n; xi++) {
for (xj=xi+1; xj<n; xj++) {
if (arr[xi]==arr[xj])
dupeArray.push(arr [xi]);
} }
return dupeArray;
}
从那里,在你的函数之外,迭代这个数组并像以前一样添加必要的样式。
for (var i in arrTieneDups( yourArray ) )
{
$( "input[name$='matricula"+i+"']" ).addClass("errorformalta");
$( "input[name$='matricula"+i+"']" ).addClass("errorinputtext");
$( "input[name$='matricula"+i+"']" ).after('<span style="display: inline; margin-left: -20px; opacity: 1;font-size:48px;color:red;font-weight:800;" class="pyr_error_form">!</span>');
}
语法可能已关闭。我现在无法进行测试。