Javascript 循环中的if语句起作用。但不是在我加上“以后”;“循环”/';重复';取来
我之前也提出过类似的问题,但不够简洁。 我来了 我正在从一个网站获取一些数据,一组对象,然后循环通过它来修改它。 我之所以修改它,完全是因为我需要数组中每个对象中的新元素,以便以后对它们运行一些“if语句” 我发现我的循环和if语句在没有fetch函数的情况下可以正常工作。但是,当我添加它时,应该返回true的if语句会执行相反的操作 示例代码位于底部 如果我按原样运行fetch(在获取对象的数据数组之后,我在没有fetch的情况下运行了代码,一切正常),那么这就是在fetch之外工作的部分Javascript 循环中的if语句起作用。但不是在我加上“以后”;“循环”/';重复';取来,javascript,loops,date,if-statement,fetch,Javascript,Loops,Date,If Statement,Fetch,我之前也提出过类似的问题,但不够简洁。 我来了 我正在从一个网站获取一些数据,一组对象,然后循环通过它来修改它。 我之所以修改它,完全是因为我需要数组中每个对象中的新元素,以便以后对它们运行一些“if语句” 我发现我的循环和if语句在没有fetch函数的情况下可以正常工作。但是,当我添加它时,应该返回true的if语句会执行相反的操作 示例代码位于底部 如果我按原样运行fetch(在获取对象的数据数组之后,我在没有fetch的情况下运行了代码,一切正常),那么这就是在fetch之外工作的部分 i
if(时间<新日期(新日期(Date.now()).tolocalString('en-US',{时区:'UTC'))){
var time=new Date(new Date(Date.now()).tolocalString('en-US',{timeZone:'UTC'}))
//如果时间“较小”,则使用UTC中的当前时间更改时间
}否则{
//无所事事
}
for(设i=0;idata[i].estimatedtime){
//做点什么
}else{//如果条件为false,则重复获取
console.log('不合适!')
getData()
}
}
我试过做两个循环。
一个用于改变数据数组的对象,另一个用于if语句
+我对这两个单独的循环使用了asynch/await函数,以确保第二个循环(if语句)仅在第一个循环完成后启动。它似乎不起作用。
之前,我发布的错误是日期,显示的是“无效日期”。我解决了这个问题,但我仍然有同样的问题
var errorcheck = []
time = new Date('11/2/2019 14:25')
function getData() {
fetch(fetch_url)
.then((response) => {
if (!response.ok) {
errorcheck.push(response.status)
} // if response is not ok, i store the error code.
else if (response.ok) {
response.json()
.then(data => data = data)
.then(() => {
if (data.length > 0) { // checking if any "data array" has objects
if (time < new Date(new Date(Date.now()).toLocaleString('en-US', { timeZone:'UTC'}))) {
var time = new Date(new Date(Date.now()).toLocaleString('en-US', { timeZone:'UTC'}))
//changing time with current time in UTC if time is "smaller"
} else {
//do nothing
}
for (let i = 0; i < data.length; i++) {
data[i]['ontime'] = (new Date(new Date(data[i].starttime).toLocaleString('en-US', {timeZone: 'UTC'})))
data[i]['estimatedtime'] = dateAdd(new Date(time), 'second', Math.round(data[i].distance.value / 50 * 60 * 60))
for (let j = 0; j < data.rooms.length; j++) {
/*push and save some elements*/
}
if (data[i].ontime > data[i].estimatedtime) {
//do something
} else { // repeat fetch if the condition is false
console.log('unsuitable!')
getData()
}
}
} else {
console.log('no object in data!')
getData() //if data array had no objects inside, i repeat the fetch
}
})
}
})
}
var errorcheck=[]
时间=新日期('2019年11月2日14:25')
函数getData(){
获取(获取url)
。然后((响应)=>{
如果(!response.ok){
errorcheck.push(响应状态)
}//如果响应不正常,则存储错误代码。
else if(response.ok){
response.json()
.然后(数据=>数据=数据)
.然后(()=>{
如果(data.length>0){//检查任何“数据数组”是否有对象
如果(时间<新日期(新日期(Date.now()).toLocaleString('en-US',{时区:'UTC')))){
var time=新日期(新日期(Date.now()).toLocaleString('en-US',{时区:'UTC'))
//如果时间“较小”,则使用UTC中的当前时间更改时间
}否则{
//无所事事
}
for(设i=0;idata[i].estimatedtime){
//做点什么
}else{//如果条件为false,则重复获取
console.log('不合适!')
getData()
}
}
}否则{
console.log('数据中没有对象!')
getData()//如果数据数组中没有对象,则重复获取
}
})
}
})
}
更新:
我已经取出了下一个代码,它与fetch一起工作也很好
if (time < new Date(new Date(Date.now()).toLocaleString('en-US', { timeZone:'UTC'}))) {
var time = new Date(new Date(Date.now()).toLocaleString('en-US', { timeZone:'UTC'}))
//changing time with current time in UTC if time is "smaller"
} else {
//do nothing
}
if(时间<新日期(新日期(Date.now()).toLocaleString('en-US',{时区:'UTC'))){
var time=新日期(新日期(Date.now()).toLocaleString('en-US',{时区:'UTC'))
//如果时间“较小”,则使用UTC中的当前时间更改时间
}否则{
//无所事事
}
每次运行fetch时都需要运行此代码。否则,时间戳(estimatedtime
)将完全不相关。
我试着做了第二个
。然后在第一个和第二个之后也做了一个<代码>时间
未更新。就像time
(以及estimatedtime
)一样,每次运行或完成提取时,我都需要修改其他变量。
我不能100%确定此处所需的逻辑,我只是在文档中添加一个元素,并附加一个事件,并在需要更多数据时触发它
我还创建了myApp
来保存值,而不是多个全局变量
var myApp=myApp ||{
错误检查:[]
};
//这些可能在上面的对象中,就像错误检查一样
myApp.lastTimestamp=新日期();
myApp.fetch_url=“some/urlthing”;
myApp.time=new Date.UTC();
var anewdiveElement=document.createElement(“div”{
id:“newDivElement”
});
var getMoreDataEvent=新事件('getMoreData');
AnewDiveElement.addEventListener('getMoreData',函数(e){
myApp.getData();
},假);
document.body.appendChild(anewDiveElement);
var divHoldEvents=document.getElementById(“newDivElement”);
myApp.getData=函数(){
获取(myApp.fetch\u url)
.然后(功能(响应){
if(response.ok){
让data=response.json();
//检查是否有任何“数据数组”具有对象
如果(data.length>0){
myApp.myUtcDateTime=新日期.UTC();
if(myApp.time