我编写了一个函数,它给出了一些输入复选框的所有值,并将它们包含在一个数组中。
功能:
$('#area_tbl .checkbox').each(function(){
/*for(var i = 0; i < test.length; i++){
if(test[i].PLZ === $(this).find('.area-checkbox').val()){
alert('Gleich');
}else{
alert('nicht gleich');
}
}*/
test.push({PLZ:$(this).find('.area-checkbox').val()});
});
我的数组看起来像这样:
[Object { PLZ="42799"}]
那很好!
现在我自动包含更多值的复选框。之后,我的功能令人耳目一新,我加入了新的&#39;值。
现在我的问题是我的数组看起来像这样:
[Object { PLZ="42799"}, Object { PLZ="42799"}, Object { PLZ="51399"}]
您可以看到PLZ='42799'
两次。
我想找到重复的值并从我的数组中删除它们。我在我的函数中使用if子句尝试它。但没有什么对我有用。
答案 0 :(得分:1)
假设每个复选框的值都是唯一的,您需要在运行此test
迭代器之前重置each
值
test = [];
$('#area_tbl .checkbox').each(function(){
test.push({PLZ:$(this).find('.area-checkbox').val()});
});
答案 1 :(得分:0)
你可以使用记忆
// The memory will be a simple list with the already added elements. Firstly empty
memory = []
// we loop over ther checboxes
$('#area_tbl .checkbox').each(function(){
// we store the value
var v = $(this).find('.area-checkbox').val();
// If memory doesn't content the value... (its position is -1)
if(memory.indexOf(v) == -1){
// we store the object and we update the memory
test.push({PLZ:v});
memory.push(v);
}
});
答案 2 :(得分:0)
您可以使用临时对象并查看访问该属性:
var object= {};
$('#area_tbl .checkbox').each(function() {
var v = $(this).find('.area-checkbox').val();
if (!object[v]) {
test.push({PLZ: v});
object[v] = true;
}
});