Javascript React js材质ui生成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

我正在写一个方法,它应该生成n个随机颜色而不重复,传递以下属性

随机({
电话号码: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 }); //