未捕获的TypeError:无法在colorguessinggame.js:13

时间:2018-10-22 04:20:58

标签: javascript

我创建了一个数组,该数组随机创建x数量的RGB颜色。我想获取此信息并将数组中的每个元素分配给一个方形按钮。因此,想法是在每个实例运行代码时,方形按钮将为其获得新的RGB颜色。

var generateColors = generateArray(6);
var generateColorOptions = document.querySelectorAll(".colorSquare");

// giving each button a color value from the array
for(var i = 0; i < generateColorOptions.length; i++) {
    generateColors[i].style.background = generateColors[i];
}

//want to make one of the RGB values created the solution RGB that prints in the beiggining
function generateArray(num) {
    var colorArray = [num];

    for(var i = 0; i < num.length; i++) {
        //random color generated
        colorArray.push(generateRGBNumber());
        //want to always push an array element to be the given RGB value
    }

    return colorArray;
}

function generateRGBNumber() {
  var num = Math.round(0xffffff * Math.random());
  var r = num >> 16;
  var g = num >> 8 & 255;
  var b = num & 255;
  return 'rgb(' + r + ', ' + g + ', ' + b + ')';
}

1 个答案:

答案 0 :(得分:0)

您正在更改generateColors函数的背景,将其更改为generateColorOptions。 同样,decalre colorArray是[],并且仅循环迭代num。不是num.length,因为number是一个函数。使用下面的代码。

var generateColors = generateArray(6);
var generateColorOptions = document.querySelectorAll(".colorSquare");

// giving each button a color value from the array
for (var i = 0; i < generateColorOptions.length; i++) {
    generateColorOptions[i].style.background = generateColors[i];
}

//want to make one of the RGB values created the solution RGB that prints in the beiggining
function generateArray(num) {
    var colorArray = [];

    for (var i = 0; i < num; i++) {
        //random color generated
        colorArray.push(generateRGBNumber());
        //want to always push an array element to be the given RGB value
    }

    return colorArray;
}

function generateRGBNumber() {
    var num = Math.round(0xffffff * Math.random());
    var r = num >> 16;
    var g = num >> 8 & 255;
    var b = num & 255;
    return 'rgb(' + r + ', ' + g + ', ' + b + ')';
}