Javascript 如何从props中的数组导出字符串,而不是一次导出一个值?

Javascript 如何从props中的数组导出字符串,而不是一次导出一个值?,javascript,reactjs,Javascript,Reactjs,我正在学习ReactJS,我正在构建一个颜色随机化器,教程使用纯文本,即“紫色,蓝色”,但我想更进一步,为颜色生成十六进制字符串值,我无法解决的问题是如何导出由我道具数组中的元素组成的字符串,目前我一次可以导出1个元素,并且必须调用函数六次才能生成十六进制值 这是我导出一个值的函数: function choice(arr){ let randomIndex = Math.floor(Math.random() * arr.length); return arr[rand

我正在学习ReactJS,我正在构建一个颜色随机化器,教程使用纯文本,即“紫色,蓝色”,但我想更进一步,为颜色生成十六进制字符串值,我无法解决的问题是如何导出由我道具数组中的元素组成的字符串,目前我一次可以导出1个元素,并且必须调用函数六次才能生成十六进制值

这是我导出一个值的函数:

    function choice(arr){
    let randomIndex = Math.floor(Math.random() * arr.length);
    return arr[randomIndex];

}


export {choice};
这是我读取值的组件,如您所见,我调用它六次:

 import React, { Component } from 'react'
import {choice} from './helpers'
import './Box.css'
import './helpers'

class Box extends Component{
    static defaultProps = {
        colorHex : ['a','b','c','d','e','f','1','2','3','4','5','6','7','8','9','0']
    }
    constructor(props){
        super(props);
        this.state = {color: `#${choice(this.props.colorHex)}${choice(this.props.colorHex)}${choice(this.props.colorHex)}${choice(this.props.colorHex)}${choice(this.props.colorHex)}${choice(this.props.colorHex)}`};
        this.handleClick = this.handleClick.bind(this)
    }
    pickColor(){
        let newColor = choice(this.props.colorHex);
    }
    handleClick(){

    }
    render(){
        return(
            <div className="Box" style={{backgroundColor: this.state.color}}onclick={this.handleClick}>

            </div>
        )
    }
}


export default Box;
import React,{Component}来自“React”
从“/helpers”导入{choice}
导入“./Box.css”
导入“./helpers”
类框扩展组件{
静态defaultProps={
colorHex:[a'、'b'、'c'、'd'、'e'、'f'、'1'、'2'、'3'、'4'、'5'、'6'、'7'、'8'、'9'、'0']
}
建造师(道具){
超级(道具);
this.state={color:`${choice(this.props.colorHex)}${choice(this.props.colorHex)}${choice(this.props.colorHex)}${choice(this.props.colorHex)}${choice(this.props.colorHex)}${choice(this.props.colorHex)};
this.handleClick=this.handleClick.bind(this)
}
pickColor(){
让newColor=choice(this.props.colorHex);
}
handleClick(){
}
render(){
返回(
)
}
}
导出默认框;

如您所见,我正在处理一个单击事件,该事件会随机化单击时的颜色(尚未到达,必须先穿过此点)。

可能类似于此

function choice(arr){
 let str = "";
 let randomIndex;
 for (i = 0; i < cars.length; i++) {
  randomIndex = Math.floor(Math.random() * arr.length);
  str += arr[randomIndex];
 }
 return str;
}
功能选择(arr){
设str=“”;
随机指数;
对于(i=0;i
您可以在选择函数中使用循环

function choice(arr){
  let hexString = ''
  for (let i = 0; i<=6; i++) {
    let randomIndex = Math.floor(Math.random() * arr.length);
    hexString += arr[randomIndex]
  }
  return hexString;
}


export {choice};
功能选择(arr){
让hexString=''

对于(设i=0;i,您可以使用for循环在选择函数本身中调用randomIndex 6次

 function choice(arr){
     let t = '';
     for(let i=0;i<6;i++){
         t += arr[Math.floor(Math.random() * arr.length)]
     }
    let randomIndex = Math.floor(Math.random() * arr.length);
    return t;

}
arr =  ['a','b','c','d','e','f','1','2','3','4','5','6','7','8','9','0']
功能选择(arr){
设t='';

因为(让i=0;它工作得很好!谢谢!!