سلام دوستان
وقتتون بخیر
من تو یک نمونه پیاده سازی calculator با react به یه همچین شرطی برخوردم:
if(this.state.result.includes('--'))
میدونید این عبارت ('--') include به چه معنی هست؟
بله ممکنه این اتفاق بیفته.
بعلاوه در عبارات ریاضی هم ممکنه اتفاق بیفته.
حالت دیگه ای هم داره، بدین صورت:
5000 تا داریم، می خوایم منهای ِ منفی 3000 کنیم.
در مثالی که زدم هم در واقع معادلی برای همون منفی در منفی، می شود مثبت هستش.
اتفاقا به نظر من کسی که این کد رو نوشتم، دقت نظر بالایی داشته که این حالت رو در نظر گرفته.
includes() یک method هستش.
منبع: https://www.w3schools.com/jsref/jsref_includes.asp
بررسی می کنه که: آیا یک رشته ی موجود، شامل یک رشته ی خاص دیگه میشه یا نه؟
مقدار برگشتی هم: یا مقدار درست true هستش یا غلط false
درین مثال یعنی: آیا رشته ی (this.state.result)، شامل یک رشته ی ('--')، میشه یا نه؟
@milad درسته اما الزام استفاده از این خط (('--') include )در ماشین حساب چی هست؟
شاید پاسخ شما همینجا باشد
کد کامل به این شکل هست:
import React, { Component } from 'react';
import './App.css';
import ResultComponent from './components/ResultComponent';
import KeyPadComponent from "./components/KeyPadComponent";
class App extends Component {
constructor(){
super();
this.state = {
result: ""
}
}
onClick = button => {
if(button === "="){
this.calculate()
}
else if(button === "C"){
this.reset()
}
else if(button === "CE"){
this.backspace()
}
else {
this.setState({
result: this.state.result + button
})
}
};
calculate = () => {
var checkResult = ''
if(this.state.result.includes('--')){
checkResult = this.state.result.replace('--','+')
}
else {
checkResult = this.state.result
}
try {
this.setState({
// eslint-disable-next-line
result: (eval(checkResult) || "" ) + ""
})
} catch (e) {
this.setState({
result: "error"
})
}
};
reset = () => {
this.setState({
result: ""
})
};
backspace = () => {
this.setState({
result: this.state.result.slice(0, -1)
})
};
render() {
return (
<div>
<div className="calculator-body">
<h1>Simple Calculator</h1>
<ResultComponent result={this.state.result}/>
<KeyPadComponent onClick={this.onClick}/>
</div>
</div>
);
}
}
export default App;مرسی از بابت قرار دادن کدها، الان جوابش مشخصه:
if(this.state.result.includes('--')){
checkResult = this.state.result.replace('--','+')
}
داره میگه وقتی دوتا منفی پشت سرهم بودش، تبدیلش کن به مثبت.
خب این یک قاعده ی ریاضی هستش، منفی در منفی میشه مثبت.
متوجه شدید؟
@milad
خب شما وقتی از ماشین حساب استفاده میکنید، اینکارو انجام میدید که مثلا تایپ کنید --3؟
در محاسبات روی کاغذ و مسایل ریاضی ممکنه این کارو انجام بدیم ولی لزوم اینکار در ماشین حساب رو متوجه نمیشم