Javascript 在不同范围内累积变量

Javascript 在不同范围内累积变量,javascript,jquery,Javascript,Jquery,请查看我的代码: function foo() { var h = "start"; $.each(some_array_of_objects, function() { var name = 'middle'; h += name; }); h += "end"; alert(h); } 我希望在我的警报中看到累积的字符串,但我得到的字符串中有很多[object object]字符串。是否可以在不使用全局

请查看我的代码:

function foo() {
    var h = "start";
    $.each(some_array_of_objects, function() {
        var name = 'middle';        
        h += name;
    });
    h += "end";
    alert(h);
}

我希望在我的警报中看到累积的字符串,但我得到的字符串中有很多[object object]字符串。是否可以在不使用全局变量的情况下以上述方式累积h变量?

无需使用jQuery来循环数组/对象,只需使用
来循环数组,使用
来循环对象。
这将在您的情况下起作用:

//Assuming the input array is something like this:
some_array_of_objects = [[{name:'ABC'}],[{name:'I am a name'}],[{name:'Look at me!'}],[{name:'foo'}],[{name:'bar'}]]

function foo() {
    var h = "start";
    // Loop through the array.
    for(var i = 0; i < some_array_of_objects.length; i++){
        var name = some_array_of_objects[i][0].name;        
        h += name;
    }
    h += "end";
    alert(h);
}
foo(); //Returns: "startABCI am a nameLook at me!foobarend"
//假设输入数组如下所示:
一些对象的数组=[{name:'ABC'}],{name:'I am a name'}],{name:'Look me!'}],{name:'foo'}],{name:'bar'}]
函数foo(){
var h=“开始”;
//在数组中循环。
for(var i=0;i
这很可能是因为
$(This)[0]['name']
是一个数组。您能否将变量的
某些数组的值发布到
对象中。请将代码发布到
引用的对象中。您没有使用“全局变量”
h
仅在
函数foo()的范围内可用。现在,你能给我们看看
一些对象的数组的内容吗?@RoryMcCrossan这在这里绝对不重要。查看我的更新代码我不确定jQuery构造函数在那里做什么。你不想要这个名字吗?尝试将其重写为一个简单的for循环,而不使用任何jQuery。好的,谢谢,但是我的代码有什么问题?变量作用域有一些限制吗?我不太清楚这个问题的意思。