Undefined ошибка
Вложений: 1
Добрый вечер, имеется ряд функций для генерации объектов. все возвращается правильно, но в объекте появляется undefined непонятно, почему
function generateObjects(count, colors) {
if (count % 2 == 0) {
let i = 1, arr = []
while(i < count) {
let color = arrayRandElement(arr, colors);
console.log(color)
arr.push({id:i, color: color, state: 'hidden'})
arr.push({id:++i, color: color, state: 'hidden'})
i++
}
console.log(arr)
}
}
function arrayRandElement(arr, colors) {
let rand = Math.floor(Math.random() * colors.length);
let count = checkElements(arr, colors[rand])
if(count >= 2) {
arrayRandElement(arr, colors)
}else {
console.log(rand, colors)
return colors[rand];
}
}
function checkElements(arr, color) {
let count = 0;
arr.forEach((i) => {
if (i.color == color) count++
})
return count
}
generateObjects(6, ['red', 'blue', 'yellow'])
скрин приложил |
SolomonRei,
цель генерации какая? какой нужен результат? |
SolomonRei,
может массив цветов перемешать, а не искать что уже выпало, а что нет? |
SolomonRei,
function generateObjects(colors) {
let i = 1, arr = [];
for(let color of arrayRandElement(colors)){
arr.push({id:i, color: color, state: 'hidden'})
arr.push({id:++i, color: color, state: 'hidden'})
}
return arr
}
function arrayRandElement(arr) {
for(let i = 0; i < arr.length; i++) {
let rand = Math.floor(Math.random() * arr.length);
[arr[i], arr[rand]] = [arr[rand], arr[i]];
}
return arr
}
console.log(generateObjects(['red', 'blue', 'yellow']))
|
| Часовой пояс GMT +3, время: 20:16. |