Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用函数时,函数内的For循环不返回索引变量_Javascript - Fatal编程技术网

Javascript 调用函数时,函数内的For循环不返回索引变量

Javascript 调用函数时,函数内的For循环不返回索引变量,javascript,Javascript,我试图编写一个函数,当它被调用时,它将从函数中的for循环返回索引变量的值 这是我的代码: function myFunction() { for(var i = 0; i++) { return i; } alert(i); } myFunction(); 如果我放弃这个函数,如果我用JavaScript“alert”替换“return”,for循环就可以正常工作。我试图实现的是,for循环的结果只有在调用函数时才会发出警报 您的循环无效,它缺少停

我试图编写一个函数,当它被调用时,它将从函数中的for循环返回索引变量的值

这是我的代码:

function myFunction() {
    for(var i = 0; i++) {
        return i;
    }

    alert(i);
}

myFunction();

如果我放弃这个函数,如果我用JavaScript“alert”替换“return”,for循环就可以正常工作。我试图实现的是,for循环的结果只有在调用函数时才会发出警报

您的循环无效,它缺少停止条件。您需要在
for
循环中指定另一个块,否则它将抛出错误

for(var i = 0; i<10; i++)
在数组的每个元素上运行函数,并始终返回每个函数结果的数组。有两个演示,它们在原理上几乎相同

详细信息将在演示中进行注释

演示1
/*使用将所有div收集到节点列表中
||querySelectorAll()
||然后将节点列表转换为具有
||数组。from()
*/
var divs=Array.from(document.querySelectorAll('div');
/*在divs[]上运行数组方法map()
||map()将对的每个元素运行一个函数
||数组。它将返回一个新数组
||包含每个函数的返回。
*/
var INDEX_VALUE=divs.map(函数(div,idx,divs){
//获取每个div的文本
var txt=div.textContent;
//在控制台中显示索引值和文本
log('Index:'+idx+'内容:'+txt);
//返回所有结果的数组
返回idx;
});
console.log(索引值)
01
小马
独角兽
qwerty
福
酒吧
你好

world
返回
结束函数。你想用
for
循环实现什么?正如@NinaScholz所说,因为你的
警报在
返回之后,它将永远不会被触发。听起来你的函数应该只创建一个列表/数组并返回它。你想实现什么?我不明白你的意思。你能给我一个代码示例吗?@MaxSvenman你的警报只有在for循环完成后才会出现。代码的哪一部分应该使for循环停止运行?您编写它的方式(如果我们去掉return语句),它将是一个无限循环,您的警报将永远不会发生。@MaxSvenman换句话说,
return
之后的所有代码都将被忽略,因为函数调用因
return
关键字而结束。否,函数完全完成后只应返回1次。如果您希望函数返回一个数字列表,那么您的函数应该构建该数字列表,并在完成后返回它。“for循环的结果将发出警报”,因此您需要生成所有数字,退出for循环,然后发出警报。听起来你根本不需要返回,因为没有任何东西会实际使用你生成的数字。是的,我只需要创建一个空数组,然后在循环中向该数组添加数字,然后在循环完成后通知数组内容。“我试图编写一个函数,当调用该函数时,该函数将从函数中的for循环返回索引变量的值”我不知道你答案中的代码是如何接近这个描述的。@csmckelvey我更新了答案并强调了返回的
INDEX\u值
,我希望现在可以清楚地看到。仍然不清楚你为什么要引入一堆HTML和附加函数(
Array.from()
document.querySelectorAll())
映射()
)到一个关于简单javascript循环的问题。为什么不呢?OP并没有太多关于目标的细节。我将做一个简单的演示,这样就不那么混乱了。我想他们给出了关于目标的确切细节——“我试图编写一个函数,当调用它时,它将从函数中的for循环返回索引变量的值”