首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在for循环中不断丢失增量变量

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
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-11 04:20:07

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

编辑

根据埃里克的建议..。

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

示例:给定x=10;

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

Stack Overflow用户

发布于 2014-07-11 04:24:48

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

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

...

}

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

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

...

}

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

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

代码语言:javascript
代码运行次数:0
运行
复制
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

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档