Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将输入中的0替换为单个数字?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何将输入中的0替换为单个数字?

Javascript 如何将输入中的0替换为单个数字?,javascript,reactjs,Javascript,Reactjs,我正在尝试创建一个计算器。如何删除显示中带有输入数字的初始状态0?我输入的第一个数字应该是4,我的显示器显示的是04。我不确定如何删除前面的0。当我输入数字时,我应该能够看到我的输入在没有0的情况下开始 class App extends Component { constructor(props) { super(props); this.state = { operations: [0] } this.handleClick = this.h

我正在尝试创建一个计算器。如何删除显示中带有输入数字的初始状态0?我输入的第一个数字应该是4,我的显示器显示的是04。我不确定如何删除前面的0。当我输入数字时,我应该能够看到我的输入在没有0的情况下开始

class App extends Component {
  constructor(props) {
    super(props);

    this.state = {
      operations: [0]
    }
    this.handleClick = this.handleClick.bind(this);
  }

  //calculation method
  calculateOperations() {
    let result = this.state.operations.join('');
    if(result) {
      result = math.eval(result);
      result = math.format(result, { precision: 14 });
      result = String(result);
      this.setState({
        operations: [result]
      });
    }
  }

  handleClick(e) {
    const value = e.target.getAttribute('data-value');
    switch(value) {
      case 'clear':
        this.setState({
          operations: [0]
        });
        break
      case '=':
        this.calculateOperations();
        break
      default:
        //creates new array with input digits
        const newOperations = [...this.state.operations, value];
        this.setState({
          operations: newOperations
        });
        break
    }
  }

  render() {
    return (
      <div className="container">
        <Display data={this.state.operations} />
        <Buttons>
          <Button onClick={this.handleClick} id='clear' label='AC' value='clear'/>
          <Button onClick={this.handleClick} id='seven' label='7' value='7'/>
          <Button onClick={this.handleClick} id='four' label='4' value='4' />
          <Button onClick={this.handleClick} id='one' label='1' value='1' />
          <Button onClick={this.handleClick} id='zero' lable='0' value='0' />

          <Button onClick={this.handleClick} id='divide' label='/' value='/' />
          <Button onClick={this.handleClick} id='eight' label='5' value='5' />
          <Button onClick={this.handleClick} id='five' label='8' value='8' />
          <Button onClick={this.handleClick} id='two' label='2' value='2' />
          <Button onClick={this.handleClick} id='decimal' label='.' value='.' />

          <Button onClick={this.handleClick} id='multiply' label='x' value='*' />
          <Button onClick={this.handleClick} id='nine' label='9' value='7' />
          <Button onClick={this.handleClick} id='six' label='6' value='6' />
          <Button onClick={this.handleClick} id='three' label='3' value='3'/>
          <Button label='' value='null' />

          <Button onClick={this.handleClick} id='subtract' label='-' value='-' />
          <Button onClick={this.handleClick} id='add' label='+' value='+' size='2' />
          <Button onClick={this.handleClick} id='equals' label='=' value='=' size='2'/>
        </Buttons>
      </div>
    );
  }
}

export default App;
类应用程序扩展组件{
建造师(道具){
超级(道具);
此.state={
业务:[0]
}
this.handleClick=this.handleClick.bind(this);
}
//计算方法
计算操作(){
让result=this.state.operations.join(“”);
如果(结果){
结果=数学评估(结果);
result=math.format(结果,{precision:14});
结果=字符串(结果);
这是我的国家({
操作:[结果]
});
}
}
handleClick(e){
const value=e.target.getAttribute('data-value');
开关(值){
案例“明确”:
这是我的国家({
业务:[0]
});
打破
案例“=”:
这个。计算操作();
打破
违约:
//使用输入数字创建新数组
const newOperations=[…this.state.operations,value];
这是我的国家({
操作:新操作
});
打破
}
}
render(){
返回(
);
}
}
导出默认应用程序;

<代码> > p>您可以在<代码> HooLeLink 中执行一些逻辑,如果数组只包含0,那么用一个只包含输入值的新数组替换它,但我会考虑一种不同的方法。我认为初始0是一个占位符,而不是一个操作,而是将
操作初始化为
[]
,然后让
显示
组件对呈现0的
props.data.length==0
有一个特殊情况。这将有助于
手柄单击中的逻辑保持简单,无需检查特殊值。

在清除
操作中的零之前,您似乎正在调用
This.state.operations.join(“”)