使用Javascript验证数组中的现有键值

时间:2018-05-25 18:35:06

标签: javascript arrays

我有一个小表单,我输入值(id' s和名称)并通过单击按钮将它们存储在数组中,但我想验证此数组中是否存在现有的id键值因为我不想添加重复的id键值。

目前我有这个:

string

但它没有工作,因为当我在表单中输入信息时,它会继续存储重复的idperson值:

enter image description here

对不起,如果我忘记了某件事,我就是新手了。

我该如何解决?我想要一些帮助。

3 个答案:

答案 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;
&#13;
&#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>