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