首页 > 解决方案 > 使用 Javascript 验证数组中的现有键值

问题描述

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

目前我有这个:

<div class="form">
    <input type="text" id="idperson"><input type="text" id="name">
    <button id="add" type="button">ADD</button>
</div>
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script>
    var people = [];

    $("#add").click(function(){
        var iduser = $("#idperson").val();
        var name = $("#name").val();

        if(people["idperson"]!=iduser){
            people.push({idperson:iduser,nameperson:name});
        }
        console.log(people);
    });
</script>

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

在此处输入图像描述

如果我忘记了什么,我很抱歉,我是新手。

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

标签: javascriptarrays

解决方案


您可以检查输入数据是否存在于人员数组中。在此处检查工作代码。

谢谢

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;
    }
});
<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> 


推荐阅读