迭代Javascript数组
我在google上找到了,但没有得到任何指导,所以在这里发布。我在javascript和ajax中使用json数组。我从controller获得json数组,如下所示:迭代Javascript数组,javascript,arrays,Javascript,Arrays,我在google上找到了,但没有得到任何指导,所以在这里发布。我在javascript和ajax中使用json数组。我从controller获得json数组,如下所示: var response= {"6":{"id":"6"},"4":{"id":"4"}}; { 4:{ "id":"4" } 6:{ "id":"6" } }; 在javascript中迭代后,如: for (var i in response) { alert(r
var response= {"6":{"id":"6"},"4":{"id":"4"}};
{
4:{
"id":"4"
}
6:{
"id":"6"
}
};
在javascript中迭代后,如:
for (var i in response) {
alert(response[i].id);
}
数据顺序发生变化,即4,6。
在javascript内部,为什么它会更改数据的顺序。有什么建议吗。不确定(z中的变量x)的顺序是什么。。 此外,IE不仅会返回数组中的项,还会返回一些数组函数/属性:( 根据我的经验,在javascript中大部分时间都应该避免使用(var x In z)for(至少对于数组) 请尝试使用此选项:
for (var i = 0; i < response.length; i++) {
alert(response[i].id);
}
for(变量i=0;i
不确定(z中的变量x)的顺序。
此外,IE不仅会返回数组中的项,还会返回一些数组函数/属性:(
根据我的经验,在javascript中大部分时间都应该避免使用(var x In z)
for(至少对于数组)
请尝试使用此选项:
for (var i = 0; i < response.length; i++) {
alert(response[i].id);
}
for(变量i=0;i
不确定(z中的变量x)的顺序。
此外,IE不仅会返回数组中的项,还会返回一些数组函数/属性:(
根据我的经验,在javascript中大部分时间都应该避免使用(var x In z)
for(至少对于数组)
请尝试使用此选项:
for (var i = 0; i < response.length; i++) {
alert(response[i].id);
}
for(变量i=0;i
不确定(z中的变量x)的顺序。
此外,IE不仅会返回数组中的项,还会返回一些数组函数/属性:(
根据我的经验,在javascript中大部分时间都应该避免使用(var x In z)
for(至少对于数组)
请尝试使用此选项:
for (var i = 0; i < response.length; i++) {
alert(response[i].id);
}
for(变量i=0;i
使用标准for循环(您可以控制属性的顺序),而不是for in
循环(它不按特定顺序获取属性)
for(变量i=0;i
使用标准for循环(您可以控制属性的顺序),而不是for in
循环(它不按特定顺序获取属性)
for(变量i=0;i
使用标准for循环(您可以控制属性的顺序),而不是for in
循环(它不按特定顺序获取属性)
for(变量i=0;i
使用标准for循环(您可以控制属性的顺序),而不是for in
循环(它不按特定顺序获取属性)
for(变量i=0;i
以任意顺序迭代对象的可枚举属性
请改用常规循环:
for (var i=0; i<response.length; i++) {
alert(response[i].id);
}
以任意顺序迭代对象的可枚举属性
请改用常规循环:
for (var i=0; i<response.length; i++) {
alert(response[i].id);
}
以任意顺序迭代对象的可枚举属性
请改用常规循环:
for (var i=0; i<response.length; i++) {
alert(response[i].id);
}
以任意顺序迭代对象的可枚举属性
请改用常规循环:
for (var i=0; i<response.length; i++) {
alert(response[i].id);
}
但for in不应与数组一起使用,而应仅用于对象。
无论如何,试试普通的旧自行车
var i =0;
for(i=0;i<response.length;i++){
alert(response[i].id);
}
var i=0;
for(i=0;i在这里有效。但for in不应与数组一起使用,而应仅用于对象。
无论如何,试试普通的旧自行车
var i =0;
for(i=0;i<response.length;i++){
alert(response[i].id);
}
var i=0;
for(i=0;i在这里有效。但for in不应与数组一起使用,而应仅用于对象。
无论如何,试试普通的旧自行车
var i =0;
for(i=0;i<response.length;i++){
alert(response[i].id);
}
var i=0;
for(i=0;i在这里有效。但for in不应与数组一起使用,而应仅用于对象。
无论如何,试试普通的旧自行车
var i =0;
for(i=0;i<response.length;i++){
alert(response[i].id);
}
var i=0;
对于(i=0;i您不应该在
中使用for..迭代数组。请使用迭代方法
response.forEach(function (elem) {
console.log(elem.id);
});
您不应该在
中使用for..迭代数组。请使用迭代方法
response.forEach(function (elem) {
console.log(elem.id);
});
您不应该在
中使用for..迭代数组。请使用迭代方法
response.forEach(function (elem) {
console.log(elem.id);
});
您不应该在
中使用for..迭代数组。请使用迭代方法
response.forEach(function (elem) {
console.log(elem.id);
});
你不应该像那样迭代数组
为什么?
在javascript中,一切都是一个对象,甚至是一个数组
for (var i in response)
是特定于对象的。因此它也适用于数组,但会将结果作为属性获取
for (var i in response)
if(response.hasOwnProperty(i))
alert(response[i].id);
属性是排序的或任意的,因此输出顺序很奇怪
此外,如果有人修改了数组
对象的协议,并添加了新属性,那么您将出现错误,您的代码肯定会崩溃
您可以使用hasOwnProperty(i)
怎样?
你应该做:
for (var i = 0, iLength = response.length; i < iLength ; i++) {
alert(response[i].id);
}
这里不需要response.hasOwnProperty(i)
行,但是添加它是一种很好的做法
迭代对象属性不会保持顺序
要对元素进行排序,必须像第一个问题中那样制作一个数组,并对该数组进行排序
更新2:
当浏览器解释您的响应时
变量将如下所示:
var response= {"6":{"id":"6"},"4":{"id":"4"}};
{
4:{
"id":"4"
}
6:{
"id":"6"
}
};
这是chrome的一个输出:
某些浏览器按属性名升序存储对象。因此,当您迭代对象时,它们将不按顺序存储是合乎逻辑的
目前您对此无能为力。您不应该这样迭代数组
为什么?
在javascript中,一切都是一个对象,甚至是一个数组
for (var i in response)
是特定于对象的。因此它也适用于数组,但会将结果作为属性获取
for (var i in response)
if(response.hasOwnProperty(i))
alert(response[i].id);
他说,财产是分类的或任意的