Javascript React js材质ui生成n个随机颜色
我正在写一个方法,它应该生成n个随机颜色而不重复,传递以下属性Javascript React js材质ui生成n个随机颜色,javascript,reactjs,random,colors,material-ui,Javascript,Reactjs,Random,Colors,Material Ui,我正在写一个方法,它应该生成n个随机颜色而不重复,传递以下属性 随机({ 电话号码:150, 颜色:[“蓝色”、“浅蓝色”、“青色”], 色调:[“200”,“500”] //不包括颜色:[“蓝色”、“浅蓝色”、“青色”], //不包括阴影:[“200”、“500”、“700”、“A700”] }); 这些颜色是使用@material ui/core/colors使用的颜色,但我想改进该功能,使其更具性能 你能帮我一下吗 链接: 导入“/styles.css”; 从“React”导入React
随机({
电话号码:150,
颜色:[“蓝色”、“浅蓝色”、“青色”],
色调:[“200”,“500”]
//不包括颜色:[“蓝色”、“浅蓝色”、“青色”],
//不包括阴影:[“200”、“500”、“700”、“A700”]
});
这些颜色是使用@material ui/core/colors
使用的颜色,但我想改进该功能,使其更具性能
你能帮我一下吗
链接:
导入“/styles.css”;
从“React”导入React,{useState,useffect};
进口{
红色
粉红色
紫色
深紫色,
靛蓝,
蓝色
浅蓝色,
青色,
水鸭,
绿色
浅绿色,
石灰,
黄色的,
琥珀色
橙色
深橙色,
布朗,
灰色
蓝灰色
}从“@material ui/core/colors”开始;
导出默认函数App(){
常量[状态,设置状态]=使用状态({
颜色:[]
});
const{colors}=状态;
常数随机=({
数字,
颜色=[],
色度=[],
ExcludeColor=[],
排除阴影=[]
}) => {
常数huarray=[
红色
粉红色
紫色
深紫色,
靛蓝,
蓝色
浅蓝色,
青色,
水鸭,
绿色
浅绿色,
石灰,
黄色的,
琥珀色
橙色
深橙色,
布朗,
灰色
蓝灰色
];
常数huenarray=[
“红色”,
“粉红”,
“紫色”,
“深紫色”,
“靛蓝”,
“蓝色”,
“浅蓝色”,
“青色”,
“水鸭”,
“绿色”,
“浅绿色”,
“石灰”,
“黄色”,
“琥珀”,
“橙色”,
“深橙色”,
“棕色”,
“灰色”,
“蓝灰色”
];
常量shaderray=[
"50",
"100",
"200",
"300",
"400",
"500",
"600",
"700",
"800",
"900",
“A100”,
“A200”,
“A400”,
“A700”
];
const random=(items)=>Math.floor(Math.random()*items.length);
return[…数组(number).keys()]。reduce((acc,el)=>{
让check=true;
while(检查){
让checkHue=true,
checkShade=true;
让休尔,着色器;
while(checkHue){
hueR=随机(Huarray);
如果(
(colors.length==0&&excludeColors.length==0)||
(colors.length!==0&&colors.includes(huenarray[hueR]))||
(不包括colors.length!==0&&
!ExcludeColor.包括(hueNameArray[hueR]))
)
checkHue=false;
}
while(方格阴影){
着色器=ShaderRay[随机(ShaderRay)];
如果(
(shades.length==0&&excludeShades.length==0)||
(shades.length!==0&&shades.includes(着色器))||
(excludeShades.length!==0&!excludeShades.includes(着色器))
)
checkShade=false;
}
const color=huarray[hueR][shadeR];
console.log(
胡埃纳雷[胡尔],
着色器,
颜色
行政协调会,
!附件包括(颜色)
);
如果(!附件包括(颜色)){
acc[el]=颜色;
检查=错误;
}
}
返回acc;
}, []);
};
useffect(()=>{
设u=(a)=>[…新集合(a)];
让a,b;
/*a=随机({
电话:257
}); //