#javascript #arrays #function
Вопрос:
Отказ от ответственности: Я очень новичок в javascript, но это моя линия мышления, я хочу создать генератор случайных паролей и хочу хранить все возможные переменные в одном массиве. Так, например, я хочу, чтобы массив выглядел так:
var characters = [
{
numbers: ("0", "1", "2", "3", "4" , "5", "6" , "7", "8", "9"),
specialChar: ("!", "%", "amp;", ",", "*", " ", "-", ".", "/", "<", ">", "?","~"),
upprCase: ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"),
lowrCase: ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"),
Моя цель состоит в том, чтобы иметь возможность ссылаться на это как на глобальный массив и оттуда создавать функцию для рандомизации значений внутри массива и возврата вновь сгенерированного пароля.
Я не прошу никого делать это, я просто хочу знать, сработает ли этот подход.
Комментарии:
1. вы можете использовать другие массивы для значений.
2. ну, ваш массив внутри не является массивом
[ { numbers: ("0",
< — это(
не массив. Непонятно, почему у вас есть [] вокруг объекта.3. Я добавил ссылку на скриншот того, что у меня есть для моего массива, я просто не знаю, возможно ли сгенерировать случайную строку для пароля, используя то, что указано внутри массива. Или я должен просто сделать каждый элемент массива (т. Е. specChar) в их собственные соответствующие массивы и ссылаться на них по отдельности. Опять же, я очень новичок в этом, поэтому прошу прощения, если в этом нет особого смысла
Ответ №1:
Он практически у вас есть, но ()
не работает в JavaScript. Вместо этого вы можете использовать массив. Вы можете вложить массивы, поэтому в вашем случае массивы находятся внутри словаря.
var characters = {
'numbers':["0", "1", "2", "3", "4" , "5", "6" , "7", "8", "9"],
'specialChar':["!", "%", "amp;", ",", "*", " ", "-", ".", "/", "<", ">", "?","~"],
'upperCase':["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"],
'lowerCase':["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
}
В этом коде словарь (отмеченный {}
) содержит массивы с вашими ключами. Чтобы использовать это, вы можете использовать characters['numbers'][0]
, чтобы получить первое число. В вашем случае вам нужны случайные символы, поэтому вы можете использовать что-то вроде
characters['numbers'][Math.floor(Math.random()*10)]
Однако имейте в виду, что словари не упорядочены. Поэтому, если вы хотите случайным образом выбирать между цифрами, специальными символами и буквами, вы можете выбрать случайным образом из массива:
choices = ["numbers", "specialChar", "upperCase", "lowerCase"]
chartype = choices[Math.floor(Math.random() * 4)]
А затем используйте это, чтобы получить случайный символ,
characters[chartype][Math.floor(Math.random()*10)]
Комментарии:
1. Большое вам спасибо! Это именно то, о чем я думал, я еще не узнал о словарях для массивов, какая потрясающая концепция.