Javascript 调用函数时,函数内的For循环不返回索引变量
我试图编写一个函数,当它被调用时,它将从函数中的for循环返回索引变量的值 这是我的代码:Javascript 调用函数时,函数内的For循环不返回索引变量,javascript,Javascript,我试图编写一个函数,当它被调用时,它将从函数中的for循环返回索引变量的值 这是我的代码: function myFunction() { for(var i = 0; i++) { return i; } alert(i); } myFunction(); 如果我放弃这个函数,如果我用JavaScript“alert”替换“return”,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循环返回索引变量的值”