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。好的,谢谢,但是我的代码有什么问题?变量作用域有一些限制吗?我不太清楚这个问题的意思。