【问题标题】:display an associative array in a multidimensional array javascript在多维数组javascript中显示关联数组
【发布时间】:2018-10-14 11:24:11
【问题描述】:

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

因此,如果用户输入用户名,那么将在控制台中显示的唯一值将是用户输入的关联数组“用户名”的对象(如果存储的话)。

但是每次我输入一个值时,控制台都不显示任何内容,我的代码似乎有什么问题?

谢谢

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

【问题讨论】:

  • 您使用字符串作为键,但将人员定义为数组,我认为您将 JavaScript 与 PHP 混淆了。

标签: javascript forms multidimensional-array associative-array


【解决方案1】:

无论您为它们分配多少键值,外部数组中的关联数组的长度都是 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;
}

【讨论】:

  • 我认为使用另一个循环可以让我显示 (uName) 的值,如果它等于 (zName)
  • 顺便说一句,如果你想循环一个关联数组的键,你需要一个for-in循环,比如for (key in myArray) { if (myArray.hasOwnProperty(key))...。
猜你喜欢
  • 2011-08-15
  • 2015-11-15
  • 2021-01-10
  • 1970-01-01
  • 1970-01-01
  • 2013-01-25
  • 1970-01-01
  • 2020-03-23
  • 1970-01-01
相关资源
最近更新 更多