#javascript #arrays #loops
#javascript #массивы #циклы
Вопрос:
У меня есть пустой массив, который будет получать составные объекты при нажатии кнопки. Я пытаюсь сгенерировать случайный URL-адрес, который будет назначен каждому, но только в том случае, если URL-адрес ранее не использовался.
Запутанная часть заключается в том, что я не могу проверить пустой массив, поэтому я должен написать условие в начале, в котором говорится, что если массив пуст, добавьте URL. Кажется, я не могу заставить это работать, поэтому, если кто-нибудь может помочь, я был бы признателен! Заранее спасибо.
var pets = [];
var petPics = ["http://cdn2-..", etc]
this.getPetPic = function() {
var random = Math.floor(Math.random() * petPics.length);
if (pets[0] === "undefined") {
return petPics[random];
} else {
for (var pet of pets) {
if (petPics[random] != pet.image) {
return petPics[random];
}
}
}
}
Комментарии:
1. —Забудьте свой код на секунду — Ваш код действительно сбивает с толку. Не могли бы вы попытаться лучше объяснить свой вопрос, пожалуйста? Почему вы не можете проверить по пустому массиву?
2. используйте
pets.length === 0
вместоpets[0] === "undefined"
или измените его наtypeof pet[0] === 'undefined'
3. почему вы используете эти циклы, а не
indexOf()
? И почему вы проверяете строку «undefined»?