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, время: 14:29. |