У меня есть задание прямо сейчас, которое требует, чтобы я использовал Math.random()
, хранящийся в переменной, которую я назвал randomNumberBetween0and5
(Это фактически Math.floor((Math.random() * 5) + 0);
, которая возвращает число от 0 до 5. Я использую это число, чтобы ссылаться на индекс некоторых массивов в другом месте код.) Я называю это еще дважды в моем коде, но мне нужно, чтобы Math.random()
выполнялся только один раз, а затем сохранил его значение в переменной randomNumberBetween0and5
для последующего использования без изменения, если я вызову переменную два или три раза.Как я могу заставить Math.random() возвращать другое значение каждый раз, когда я вызываю переменную, в которой она хранится?
Я попытался сохранить значение randomNumberBetween0and5
в другой переменной и (как ожидалось), что не помогло. Любая помощь, безусловно, будет оценена! Спасибо!
(Вот весь код только в случае, если вы хотели бы видеть его.)
var names = ["Lázaro", "Aviram", "Samuel", "Miles", "Felix"]; // Defining an array of random names
var people = []; // Declaring the array to hold each instance of the 'Person' object
// For() to create one new instance thrice for three names of the 'names' array in the 'Person' object defined in 'person.js'
for (var i=0;i < 3;i++) {
var randomNumberBetween0and5 = Math.floor((Math.random() * 5) + 0); // Randomly choosing a number for the arrays to be passed to the 'Person()' object's methods defined in 'person.js'
var newInstance = new Person.generate(names.splice(randomNumberBetween0and5,randomNumberBetween0and5+1),Person.actions[randomNumberBetween0and5],Person.jobs[randomNumberBetween0and5],i+1); // Creating a new instance of the 'Person()' object and passing a random name, action (from the Person object's properties), and job (also from the Person object's properties), along with the current loop number for the row to use (i begins at 0 so it becomes 1,2,3 instead of 0,1,2 when a 1 is added)
//people.push(newInstance); // Adding the new instance to the 'people' array of instances
people.push(newInstance); // Adding the newly created instance of 'Person' to the variable 'people'
}; // Ending the for()
console.log(people); // Logging the 'people' array for debugging
console.log("Main.js has been completely interpreted -- Nothing has broken yet."); // Reassuring console log to state that this file has completely executed without breaking
Если вы сохраните номер в переменной, он останется установленным и не изменится ... это цель переменных в языках программирования: сохранить данные. Вы делаете что-то еще с этой переменной, иначе это невозможно, так или иначе. –
@MarcoBonelli 'variable' и' keep data' в том же предложении не подходит. Может быть, 'constant' будет более уместным, но не совсем правильным. – silentw
'Math.random()' находится в переменной. Это означает, что значение переменных изменяется каждый раз, когда оно вызывается. Я полагаю, что константа может не позволить изменять значение после того, как 'Math.random()' устанавливает его, но я почти уверен, что у JavaScript нет констант. –