我正在使用下面的代码来获取3 div使用的颜色列表。如果此div设置了颜色,则应将其推入数组checkColors
。
var checkColors = [];
$("div[style]").each(function(){
getColor = $(this).css("color");
if(getColor){
checkColors.push(getColor);
}
});
if(checkColors){
checkColors = shuffleArray(checkColors);
if(checkColors.length > 0){
if(checkColors[0]){
backgroundColor = checkColors[0];
}
if(checkColors[1]){
primaryColor = checkColors[1];
}
if(checkColors[2]){
secondaryColor = checkColors[2];
}
}
}
但是,
if(checkColors.length > 0){
给了我一个我不明白的错误,因为我有一个If语句来检查数组是否未定义。这是
Uncaught TypeError: Cannot read property 'length' of undefined
函数: function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
最佳答案
我猜是
shuffleArray(checkColors)
改变数组而不返回一个新数组。因此
checkColors = shuffleArray(checkColors)
将shuffleArray设置为undefined。