отображать ассоциативный массив в многомерном массиве JavaScript - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь отобразить определенный ассоциативный массив в многомерном массиве, используя ключ username.

, поэтому, если пользователь вводит имя пользователя, единственное значение, которое будет отображаться в консоли, будет объектами ассоциативного массива "имя пользователя", который вводится пользователем при его сохранении.

но каждый раз, когда я вводю значение, консоль ничего не отображает, в чем проблема моего кода?

Thankyou

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 голосов
/ 04 мая 2018

Ассоциативные массивы во внешнем массиве имеют длину 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;
}
...