我正在尝试使用密钥用户名在多维数组中显示特定的关联数组。
因此,如果用户输入用户名,则控制台中显示的唯一值将是关联数组的对象" username"如果存储,则由用户输入。
但每次我输入一个值时,控制台都没有显示任何内容,那么我的代码似乎有什么问题?
三江源
var storage = [];
function viewUserArray()
{
var zName = document.getElementById('checkArray').value;
for (var ctr = 0; ctr < storage.length; ctr++)
{
for (var ctr2 = 0; ctr2 <= storage[ctr].length; ctr2++)
{
if (storage[ctr][ctr2] === zName)
{
console.log(storage[ctr][ctr2])
}
else
{
alert ("Username not Found.")
return false;
}
}
}
}
function array()
{
var uName = document.getElementById('username').value;
var fName = document.getElementById('fullName').value;
var elmail = document.getElementById('email').value;
var pword = document.getElementById('password').value;
var b_day = getAge();
var g_nder = document.getElementById('gender').value;
var person = [];
person[uName] = {
"Username" : uName,
"Full Name" : fName,
"Email" : elmail,
"Password" : pword,
"Age" : b_day,
"Gender" : g_nder
};
storage.push(person);
}
答案 0 :(得分:0)
无论分配给它们的键值有多少,外部数组中的关联数组的长度都为0,因此内部循环永远不会运行。
我很好奇为什么你的内循环无论如何都存在。您应该只是将zName
与storage[ctr].uName
进行比较。
这样的事情对我来说更有意义:
function viewUserArray() {
var zName = document.getElementById('checkArray').value;
for (var ctr = 0; ctr < storage.length; ctr++) {
if (storage[ctr].uName === zName) {
console.log(storage[ctr]);
return true;
}
}
alert ("Username not Found.");
return false;
}