在多维数组javascript中显示关联数组

时间:2018-05-04 04:08:49

标签: javascript forms multidimensional-array associative-array

我正在尝试使用密钥用户名在多维数组中显示特定的关联数组。

因此,如果用户输入用户名,则控制台中显示的唯一值将是关联数组的对象" 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);               
}

1 个答案:

答案 0 :(得分:0)

无论分配给它们的键值有多少,外部数组中的关联数组的长度都为0,因此内部循环永远不会运行。

我很好奇为什么你的内循环无论如何都存在。您应该只是将zNamestorage[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;
}