【发布时间】:2016-05-29 22:27:33
【问题描述】:
我在搜索对象数组时遇到问题。基本上我的页面需要做的是使用我输入的信息创建一个新的“客户端”,例如全名、用户名、电子邮件和密码。这些客户端中的每一个都是数组中的对象,如下所示。
var clientlist = [{"username":"John","fullname":"John Doe",
"email":"john.doe@hotmail.com","type":"client","password":"jdoe2"},
这个客户端已经在我的 js 文件中创建了,我需要做的是创建一个新对象以添加到这个具有相同结构的数组中。例如,
var clientlist = [{"username":"Peter","fullname":"Peter Jones",
"email":"peter.jones@hotmail.com","type":"client","password":"pjones1"},
我已经编写了代码,但它不能正常工作,我似乎无法搜索用户名来查看我添加的用户名是否已经存在,这可能是语法错误。我将在下面留下我的完整代码,并提前感谢您的帮助!
var clientlist = [{"username":"John","fullname":"John Doe",
"email":"john.doe@hotmail.com","type":"client","password":"jdoe2"},
var Client = {};
function NewClient(){
var found;
var user = $("#username").val();
for (var i = 0; i < clientlist.length; i++) {
if (clientlist[i] == user) {
found = true;
}else{
found = false;
}
}
if (found == true){
$("#msj").html("User already exists!");
}
else if(found == false){
Client["fullname"] = $("#fullname").val();
Client["username"] = user;
Client["email"] = $("#email").val();
Client["type"] = "client";
Client["password"] = $("#password").val();
clientlist[clientlist.length] = Client;
$("#msj").html("New client has been created");
}
}
【问题讨论】:
-
你最好也添加你的 html 标记,最好使用 jsfiddle 链接
-
您始终可以使用
Array.prototype.findIndex()或Array.prototype.find()来搜索数组中的对象结构,但是我建议每个用户使用唯一的 id 并将它们分配为属性,并且 id 属性的值可以是你的用户对象。
标签: javascript arrays