Javascript 如何使用变量
我有一个关于变量的问题 我有两个页面,第一个页面我恢复数据,第二个页面我做一些操作 ActivityPage.js(第一个) 我还有另一页 Operations.js:Javascript 如何使用变量,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有一个关于变量的问题 我有两个页面,第一个页面我恢复数据,第二个页面我做一些操作 ActivityPage.js(第一个) 我还有另一页 Operations.js: //this is called from the first page directly write(objectData) { //... this.timestampCheck(objectData.arrayTimestamp); //... } //this is call from the Compon
//this is called from the first page directly
write(objectData) {
//...
this.timestampCheck(objectData.arrayTimestamp);
//...
}
//this is call from the ComponentDidMount of the second page.
stopClick() {
//...
this.timestampCheck(this.props.arrayTimestamp);
//...
}
现在我的问题是这个timestampCheck函数:
timestampCheck(timestamp) {
var int_max = 65536;
this.base = 0;
var diff = "";
var start = parseInt(this.contatore);
for (let i = 0; i < timestamp.length; i++) {
let timestamp = parseInt(timestamp[i]);
diff = (this.base + timestamp) - start;
if (diffDestro < 0) {
this.base+= int_max;
diff += this.base;
}
this.tempoReale.push(diff);
}
}
var countingValue = 0;
function timestampCheck(timestamp) {
var int_max = 65536;
this.base = 0;
var valueToUse = countingValue > 0 ? countingValue : this.base;
var diff = 0;
var start = parseInt(this.contatore);
for (let i = 0; i < timestamp.length; i++) {
let timestamp = parseInt(timestamp[i]);
diff = (valueToUse + timestamp) - start;
if (diffDestro < 0) {
valueToUse += int_max;
diff += valueToUse;
}
this.tempoReale.push(diff);
countingValue = countingValue + diff;
}
}
timestamp检查(时间戳){
var int_max=65536;
这个0.base=0;
var diff=“”;
var start=parseInt(this.contatore);
for(设i=0;i
这个函数是从两个函数中调用的stopClick
和write
,这里有一个变量This.base
。现在我不希望这个变量在离开函数timestampCheck
时失去它的值。例如,arrayTimestamp的大小大于1000,因此它调用write()函数。在此进行计算并设置this.base的值
此时,如果用户单击停止键,将调用stopClick()函数,该函数调用相同的timestampCheck函数,并且必须恢复this.base的上一个值,而不是从头开始
你认为我怎么能做到
非常感谢。只需在函数外使用一个变量来存储新值即可 因此,在功能之外:
timestampCheck(timestamp) {
var int_max = 65536;
this.base = 0;
var diff = "";
var start = parseInt(this.contatore);
for (let i = 0; i < timestamp.length; i++) {
let timestamp = parseInt(timestamp[i]);
diff = (this.base + timestamp) - start;
if (diffDestro < 0) {
this.base+= int_max;
diff += this.base;
}
this.tempoReale.push(diff);
}
}
var countingValue = 0;
function timestampCheck(timestamp) {
var int_max = 65536;
this.base = 0;
var valueToUse = countingValue > 0 ? countingValue : this.base;
var diff = 0;
var start = parseInt(this.contatore);
for (let i = 0; i < timestamp.length; i++) {
let timestamp = parseInt(timestamp[i]);
diff = (valueToUse + timestamp) - start;
if (diffDestro < 0) {
valueToUse += int_max;
diff += valueToUse;
}
this.tempoReale.push(diff);
countingValue = countingValue + diff;
}
}
var countingValue=0;
函数时间戳检查(时间戳){
var int_max=65536;
这个0.base=0;
var VALUETUSE=countingValue>0?countingValue:this.base;
var-diff=0;
var start=parseInt(this.contatore);
for(设i=0;i
因此,我在这里所做的是在名为countingValue的函数外部创建一个初始值为0的变量
然后在this.base的初始化下面,我使用了一种称为三元运算符的If语句,它表示如果当前countingValue大于0,那么我们将把该值存储在名为valueToUse的变量中,否则我们将使用此.base值,并将其存储在valueToUse变量中
在代码的其余部分中,我现在使用了valueToUse变量进行计算,而不是this.base
注意:我将变量diff更改为整数,因为它是字符串。如果不完全符合您的要求,您可能需要回顾一下,并交换几个变量。谢谢您的回答。通过这种方式,我保存了这个值,当从两个函数调用它时,我可以使用它??在我的答案底部检查我更新的答案。它应该按照您希望的方式工作。谢谢您的回答:)但是为什么当我尝试在函数外部声明变量时,它会返回一个错误?我可以问一个关于它的问题吗?你最后说的是:
countingValue=countingValue+diff
但为什么要在每个圆上对值进行校正计数?因为例如,如果我有:valueToUse=0
,timestamp=40
和contatore=20
。我有diff=20
,所以我的countingValue=20
。但是在下一个循环中,valueToUse
等于0(this.base),而不是countingValue
我想您只需要在函数开始时停止将this.base
设置为0,在函数外部初始化它