Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在for循环中不断丢失增量变量

在for循环中不断丢失增量变量
EN

Stack Overflow用户
提问于 2014-07-10 20:18:02
回答 2查看 63关注 0票数 1

我已经摆弄这个东西太久了,似乎不能让它正常工作。我遇到的问题是,我在for循环中丢失了增量变量的值,特别是当它进入其中的if语句时。理想情况下,我希望遍历一个数组,直到找到正确的值,将一个变量附加到该值,并在for循环外部使用它。这是我正在使用的数组的结构。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var dXId = [
 {url:"url1", dId:"id1"},
 {url:"url2", dId:"id2"},          
 {url:"url3", dId:"id3"}
];

下面是我运行所有内容的循环:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for(i=0; i < dXId.length; i++) {
    if (dXId[i].url == currentUrl){
    var dataXuId = dXId[i].dId;
    break;
    }

}

在if语句中,增量'i‘变量始终恢复为0。奇怪的是,dXIdi.url正确地出现了,但是dXIdi.dId拉出了第一个条目,在那之后'i‘似乎就消失了。我确信有一个非常简单的解决方案,但是javascript似乎总是给我带来麻烦。

EN

回答 2

Stack Overflow用户

发布于 2014-07-10 20:20:07

您在for循环中设置了dXIdi.url = currentUrl,而不是与'==‘进行比较。这可能是问题的一部分。

编辑

根据埃里克的建议..。

==运算符是松散地比较事物的价值,而===是严格地比较事物的价值和类型。

示例:给定x=10;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x == '10'  // true
x == 10    // true
x === '10' // false
x === 10   // true
票数 4
EN

Stack Overflow用户

发布于 2014-07-10 20:24:48

您的if语法有误。您正在将currentUrl的值赋给变量dXId[i].url

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (dXId[i].url = currentUrl){

...

}

应将其更改为===以比较字符串值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (dXId[i].url === currentUrl){

...

}

在那之后,它就能工作了!这里还有一个例子:

例如,考虑以下代码片段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var foo = 1, // change to 0 and console.log will not be displayed
    bar;     // undefined

// Assigning value of foo to bar
if (bar = foo){

    // Will print out 1
    console.log("bar is: " + bar);

}

将导致将以下输出打印到控制台:

栏是:1

原因是if (bar = foo){等于if (1){,它允许程序在if块中继续:) ...如果foo使用值0,则不会显示console.log。(这至少是我用谷歌chrome测试过的行为。)

关于这一点的示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24685521

复制
相关文章
【SQL】小心在循环中声明变量——浅析SQL变量作用域
如果你认为这个语句跑起来没问题,那你值得看下去,会避免以后踩到【SQL变量作用域】的坑。
AhDung
2019/02/25
1.7K0
关于for循环中变量定义的位置
这是我们正常习惯写的代码。同事的意思是说如果照上面那样写因为每循环一次,obj的变量就要在堆栈上分配一段空间,造成浪费。应该把obj的定义拿到for代码块的外面这样可以少分配一些内存提高效率,代码如下:
MJ.Zhou
2022/05/07
1.3K0
关于for循环中变量定义的位置
SwiftU:在循环中创建视图
通常在一个循环中创建多个SwiftUI视图。例如,我们可能想要遍历一系列名称,并让每个名称成为文本视图,或者遍历一系列菜单项,并将每个名称显示为图像。
韦弦zhy
2020/03/20
2.2K0
循环中使用goroutine引用临时变量
// ParallelWrite writes data to file1 and file2, returns the errors.
用户7365393
2021/10/06
7880
longjmp导致局部变量丢失
编译器在O1优化下,把sigsetjmp与siglongjmp之间的局部变量赋值操作丢掉了。
mingjie
2022/11/21
5580
longjmp导致局部变量丢失
Dart:在循环中使用 Async 和 Await
在 Dart(以及 Flutter)中,您可以使用Future.forEach在循环中顺序执行同步操作。下面的示例程序将打印从 1 到 10 的数字。每次打印完一个数字,它会等待 3 秒,然后再打印下一个数字。
徐建国
2022/04/27
1.7K0
Dart:在循环中使用 Async 和 Await
使用RMAN增量备份处理Dataguard因归档丢失造成的gap
Thu Mar 29 11:21:45 2018 FAL[client]: Failed to request gap sequence  GAP - thread 1 sequence 184-185  DBID 1484954774 branch 960494131 FAL[client]: All defined FAL servers have been attempted. ------------------------------------------------------------ Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization parameter is defined to a value that's sufficiently large enough to maintain adequate log switch information to resolve archivelog gaps.
星哥玩云
2022/08/16
5250
Java 如何优雅的在循环中删除元素
如果集合中的元素唯一,也就是说只删除集合中符合条件的一个元素,以下用法也是没问题的
鱼找水需要时间
2023/02/16
1.3K0
对"for循环中尽量减少对变量的重复计算"提出质疑
===========================================================
Hongten
2018/09/13
9150
对"for循环中尽量减少对变量的重复计算"提出质疑
js动态绑定事件,无法使用for循环中变量i的问题
每天不是在写 bug,就是在解 bug 的路上~更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』
小闫同学啊
2020/07/14
3.9K0
Linux日志轮循实现(shell)
在Linux系统中,日志的使用非常频繁,那么对日志就需要一定策略的管理,包括存放目录的设计,log文件命名规则,历史log文件的存放,log目录的容量限制,另外还有日志轮循。
jianghaibobo
2019/08/02
1.7K0
tree组件在for循环中无法使用getCheckedNodes这个方法
原理: 通过鼠标点击拿到选中的id,然后判断数组中存不存在这个id,有就删除,没有就添加这个id;
用户4344670
2019/08/28
3.5K0
tree组件在for循环中无法使用getCheckedNodes这个方法
CA2014:请勿在循环中使用 stackalloc
C# stackalloc 表达式从当前堆栈帧分配内存,并且在当前方法调用返回之前,不能释放内存。 如果在循环中使用 stackalloc,则可能会由于耗尽堆栈内存而导致堆栈溢出。
用户4268038
2022/02/20
4540
循环中的异步&&循环中的闭包
foo函数下的index输出5,全局下的index不存在 现在我们把var 换为let
陌上寒
2019/04/02
1.6K0
循环中的异步&&循环中的闭包
增量数据丢失的原因分析(r8笔记第26天)
今天开发的同事找到我,让我帮他们补一部分数据,因为有一个表的数据已经快一个月没有增量数据了,这个需求听起来有些奇怪是不? 问题的背景是在统计库中存在一个表,供部分应用做统计分析,每天会根据时间生成一条记录,这条记录汇总的数据会作为统计分析所用。但是每天的这一条增量数据的源头来自于另外两个在线交易库。两个库中的数据会做一些关联,大体的实现思路就是下面的形式。 现在OLAP的库中的表里的部分增量数据没有按照时间增加,所以对前端应用的统计造成了一定的影响。 当然对于DBA而言,这部分逻辑还是未知的,可能跨业务部
jeanron100
2018/03/19
8320
Javascript闭包实现Ajax在for循环中正常运行
假设我们现在需要在一个for循环中通过异步的方式向一个后端php程序请求数据,常规的写法Ajax是无法正常工作的,网上也有不少的解决方案,这里提供一个闭包方案,详细如下:
魏杰
2022/12/23
6190
泡沫破灭,而区块链在不断发展
​作为全球最知名也最具争议的加密货币,比特币近期上演“大跳水”,在11月25日一度跌幅高达15%,低至3601.52美元,创下2017年9月以来的最低水平,与去年年底逼近2万美元的峰值相比,可谓“冷热两重天”。同时,在比特币跌势带动下,加密货币集体下跌,瑞波币、以太币等加密货币一周跌幅均超过25%。据统计,全球加密货币整体市值最低为1500亿美元,相比今年1月的8000多亿美元缩水约八成。
广州闪链科技
2018/12/11
4340
泡沫破灭,而区块链在不断发展
增量数据丢失的原因分析(三)(r8笔记第91天)
今天开发的同事找到我说,他们发现一个应用今天应该会同步过来一部分数据,但是今天却没有,所以想让我帮忙看看到底是怎么回事。 对于这类需求也算是轻门熟路,不光维护管理数据,补数据也在行。看来今天又不可避免要修复数据了,不过还是得明白原因是什么。 首先查看了近几天的数据同步情况,时间范围是5月1日~5月6日,但是查看却唯独缺少了5月5日的数据,因为是计算前一天的数据变化情况,所以5月6日应该会同步5月5日的数据变化。 TRUNC(UPDATE_DATE) COUNT(*) ------------------
jeanron100
2018/03/19
9700
Redis 应用案例 - 在问题中不断成长
本文翻译整理自 Andy Grunwald 发布的一篇文章,写的是作者所在公司使用 Redis 时遇到的问题,以及处理过程,在不断解决调整中积累了很多 Redis 的使用经验 背景 产品类型:酒店搜索 技术选型:前端 PHP + 后端 Java,都会用到 Redis Redis 使用场景:缓存、数据持久化前的临时存储 2010年开始应用 Redis,PHP 对其操作时使用的是 Predis 这个客户端库 2013年改用了 phpredis 作为客户端库 2014年开始出现问题 问题描述 用户量快速增长,访问
dys
2018/04/04
1.2K0
点击加载更多

相似问题

在for循环中丢失变量范围

14

Javascript数组变量在循环中丢失

20

C编程在for循环中不断更新变量

11

C++变量在"if“循环中丢失赋值

21

Python -如何防止变量在循环中丢失?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文