Javascript 如何从使用$.each()的函数返回数据

Javascript 如何从使用$.each()的函数返回数据,javascript,jquery,Javascript,Jquery,当我尝试从使用$的函数中返回值时,each()会得到未定义的值,而不是值。但是当我直接从函数返回它时,它会找到值。我不熟悉如何解决的奇怪行为 我在这里做了一把小提琴,这是这个问题的一个例子: 函数returneach(){ $(“b”)。每个功能(i、v){ 如果(i==3){alert('should:'+i);返回i;} }); } 警报('但返回:'+returneach());// 这里有两个嵌套函数 内部函数内的返回不会导致外部函数返回 使用变量并返回该变量: functio

当我尝试从使用
$的函数中返回
值时,each()
会得到
未定义的值,而不是值。但是当我直接从函数返回它时,它会找到值。我不熟悉如何解决的奇怪行为

我在这里做了一把小提琴,这是这个问题的一个例子:

函数returneach(){
$(“b”)。每个功能(i、v){
如果(i==3){alert('should:'+i);返回i;}
});    
}

警报('但返回:'+returneach());// 这里有两个嵌套函数

内部函数内的
返回
不会导致外部函数返回

使用变量并返回该变量:

function returneach() {
    var r;
    $("b").each(function(i,v){
        if(i==3) r = i;
    });
    return r; // This will either return 3 or undefined
}

这里有两个嵌套函数

内部函数内的
返回
不会导致外部函数返回

使用变量并返回该变量:

function returneach() {
    var r;
    $("b").each(function(i,v){
        if(i==3) r = i;
    });
    return r; // This will either return 3 or undefined
}

这里有两个嵌套函数

内部函数内的
返回
不会导致外部函数返回

使用变量并返回该变量:

function returneach() {
    var r;
    $("b").each(function(i,v){
        if(i==3) r = i;
    });
    return r; // This will either return 3 or undefined
}

这里有两个嵌套函数

内部函数内的
返回
不会导致外部函数返回

使用变量并返回该变量:

function returneach() {
    var r;
    $("b").each(function(i,v){
        if(i==3) r = i;
    });
    return r; // This will either return 3 or undefined
}

将索引分配给变量,然后返回它

function returneach() {
    var ret;
    $("b").each(function(i,v){
        if(i==3) { 
           ret = i;
        }
    });
    return ret;
}
alert('but returns: ' + returneach());

将索引分配给变量,然后返回它

function returneach() {
    var ret;
    $("b").each(function(i,v){
        if(i==3) { 
           ret = i;
        }
    });
    return ret;
}
alert('but returns: ' + returneach());

将索引分配给变量,然后返回它

function returneach() {
    var ret;
    $("b").each(function(i,v){
        if(i==3) { 
           ret = i;
        }
    });
    return ret;
}
alert('but returns: ' + returneach());

将索引分配给变量,然后返回它

function returneach() {
    var ret;
    $("b").each(function(i,v){
        if(i==3) { 
           ret = i;
        }
    });
    return ret;
}
alert('but returns: ' + returneach());

很多时候,迭代一个集合需要返回另一个集合或数组。这是一个展示

function returneach() {
    var arr = [];
    $("b").each(function(i,v){
        if(i==3 || i == 2) { console.log('should be: ' + i); arr.push(i); }
    }); 

    return arr;
}
console.log('but returns: ' + returneach());
编辑 根据注释中的建议,使用
$.map()
添加了函数

function returneachWithMap(){
    return $.map($('b'), function(i,v){
        if(v==3 || v == 2) { console.log('should be: ' + v); return v; };
    });    
}
console.log('but returns: ' + returneachWithMap());
此外,文章的标题并不反映您正在使用的代码<代码>$。each()
$(选择器)不同。each()
。从:

$.each()函数与$(选择器).each()不同,后者是 用于以独占方式迭代jQuery对象。美元/个() 函数可用于迭代任何集合,无论它是 对象或数组


很多时候,迭代一个集合需要返回另一个集合或数组。这是一个展示

function returneach() {
    var arr = [];
    $("b").each(function(i,v){
        if(i==3 || i == 2) { console.log('should be: ' + i); arr.push(i); }
    }); 

    return arr;
}
console.log('but returns: ' + returneach());
编辑 根据注释中的建议,使用
$.map()
添加了函数

function returneachWithMap(){
    return $.map($('b'), function(i,v){
        if(v==3 || v == 2) { console.log('should be: ' + v); return v; };
    });    
}
console.log('but returns: ' + returneachWithMap());
此外,文章的标题并不反映您正在使用的代码<代码>$。each()
$(选择器)不同。each()
。从:

$.each()函数与$(选择器).each()不同,后者是 用于以独占方式迭代jQuery对象。美元/个() 函数可用于迭代任何集合,无论它是 对象或数组


很多时候,迭代一个集合需要返回另一个集合或数组。这是一个展示

function returneach() {
    var arr = [];
    $("b").each(function(i,v){
        if(i==3 || i == 2) { console.log('should be: ' + i); arr.push(i); }
    }); 

    return arr;
}
console.log('but returns: ' + returneach());
编辑 根据注释中的建议,使用
$.map()
添加了函数

function returneachWithMap(){
    return $.map($('b'), function(i,v){
        if(v==3 || v == 2) { console.log('should be: ' + v); return v; };
    });    
}
console.log('but returns: ' + returneachWithMap());
此外,文章的标题并不反映您正在使用的代码<代码>$。each()
$(选择器)不同。each()
。从:

$.each()函数与$(选择器).each()不同,后者是 用于以独占方式迭代jQuery对象。美元/个() 函数可用于迭代任何集合,无论它是 对象或数组


很多时候,迭代一个集合需要返回另一个集合或数组。这是一个展示

function returneach() {
    var arr = [];
    $("b").each(function(i,v){
        if(i==3 || i == 2) { console.log('should be: ' + i); arr.push(i); }
    }); 

    return arr;
}
console.log('but returns: ' + returneach());
编辑 根据注释中的建议,使用
$.map()
添加了函数

function returneachWithMap(){
    return $.map($('b'), function(i,v){
        if(v==3 || v == 2) { console.log('should be: ' + v); return v; };
    });    
}
console.log('but returns: ' + returneachWithMap());
此外,文章的标题并不反映您正在使用的代码<代码>$。each()与
$(选择器)不同。each()
。从:

$.each()函数与$(选择器).each()不同,后者是 用于以独占方式迭代jQuery对象。美元/个() 函数可用于迭代任何集合,无论它是 对象或数组


您必须从
returneach()

函数returneach(){
var-retVal;
$(“b”)。每个功能(i、v){
如果(i==3){
警报('应为:'+i);
retVal=i;
}
});
返回返回;
}

警报('但返回:'+returneach());// 您必须从
returneach()

函数returneach(){
var-retVal;
$(“b”)。每个功能(i、v){
如果(i==3){
警报('应为:'+i);
retVal=i;
}
});
返回返回;
}

警报('但返回:'+returneach());// 您必须从
returneach()

函数returneach(){
var-retVal;
$(“b”)。每个功能(i、v){
如果(i==3){
警报('应为:'+i);
retVal=i;
}
});
返回返回;
}

警报('但返回:'+returneach());// 您必须从
returneach()

函数returneach(){
var-retVal;
$(“b”)。每个功能(i、v){
如果(i==3){
警报('应为:'+i);
retVal=i;
}
});
返回返回;
}

警报('但返回:'+returneach());// 或者你可以这样做

function returneach() {
    var allTags$ = $("b");


    for(var i=0; i<allTags$.length; i++ ){
            if(i==3) { 
               return i;
            }
        }
}  
alert('but returns: ' + returneach());    
函数returneach(){
var allTags$=$(“b”);

对于(var i=0;i或者您可以这样做

function returneach() {
    var allTags$ = $("b");


    for(var i=0; i<allTags$.length; i++ ){
            if(i==3) { 
               return i;
            }
        }
}  
alert('but returns: ' + returneach());    
函数returneach(){
var allTags$=$(“b”);

对于(var i=0;i或者您可以这样做

function returneach() {
    var allTags$ = $("b");


    for(var i=0; i<allTags$.length; i++ ){
            if(i==3) { 
               return i;
            }
        }
}  
alert('but returns: ' + returneach());    
函数returneach(){
var allTags$=$(“b”);

对于(var i=0;i或者您可以这样做

function returneach() {
    var allTags$ = $("b");


    for(var i=0; i<allTags$.length; i++ ){
            if(i==3) { 
               return i;
            }
        }
}  
alert('but returns: ' + returneach());    
函数returneach(){
var allTags$=$(“b”);

for(var i=0;i
returneach
不返回任何内容。请尝试
return$.map(fn)。toArray()
您的
returneach
函数没有return语句,因此它不返回任何内容a-
returni
正在为每个l指定返回值