我有一个小表单,我输入值(id' s和名称)并通过单击按钮将它们存储在数组中,但我想验证此数组中是否存在现有的id键值因为我不想添加重复的id键值。
目前我有这个:
string
但它没有工作,因为当我在表单中输入信息时,它会继续存储重复的idperson值:
对不起,如果我忘记了某件事,我就是新手了。
我该如何解决?我想要一些帮助。
答案 0 :(得分:1)
问题是people
是一个包含idperson
属性的对象数组,而不是对象本身。
这应该可以解决问题:
var people = [];
$("#add").click(function(){
var iduser = $("#idperson").val();
var name = $("#name").val();
if (!people.find(person => person.idperson === iduser)) {
people.push({ idperson:iduser, nameperson:name });
}
console.log(people);
});
答案 1 :(得分:1)
您可以检查输入数据是否存在于人员阵列中或不存在。 点击这里查看工作代码。
由于
var people = [];
$(document).ready(function(){
$("#add").click(function(){
var iduser = $("#idperson").val();
var name = $("#name").val();
if(checkPersion({idperson:iduser,nameperson:name}) && people["idperson"]!=iduser){
people.push({idperson:iduser,nameperson:name});
} else {
console.log('User exist');
}
console.log(people);
});
function checkPersion(obj){
for(var i=0;i<people.length ;i++){
if(people[i].idperson == obj.idperson && people[i].nameperson == obj.nameperson ){
return false;
}
}
return true;
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form">
<input type="text" id="idperson"><input type="text" id="name">
<button id="add" type="button">ADD</button>
</div>
&#13;
答案 2 :(得分:0)
您可以使用javascript对象
<script>
var people = {};
$("#add").click(function(){
var iduser = $("#idperson").val();
var name = $("#name").val();
if(!(iduser in people)){
people[iduser] = name;
}
console.log(people);
});
</script>