如何迭代这个javascript对象?
我有一个像下面这样的物体-如何迭代这个javascript对象?,javascript,Javascript,我有一个像下面这样的物体- var objResult = {0:{name:"xyz"}, 1:{name:"pqr"}, 2:{name:"abc"}}; 我得到个人价值观,比如 console.log(objResult[0].name); // xyz console.log(objResult[1].name); // pqr 所以当我迭代时,我认为使用for循环就可以了,但是objResult.length给出了未定义的值 for(var i =0;i< objResult
var objResult = {0:{name:"xyz"}, 1:{name:"pqr"}, 2:{name:"abc"}};
我得到个人价值观,比如
console.log(objResult[0].name); // xyz
console.log(objResult[1].name); // pqr
所以当我迭代时,我认为使用for循环就可以了,但是objResult.length
给出了未定义的值
for(var i =0;i< objResult.length; i++){
console.log(objResult[i]);
}
for(var i=0;i
“for…in”结构允许您迭代对象上存在的所有键,甚至是无主键 语法如下:
'for(此中的const key){}'在迭代对象属性的语法中使用for
var objResult={0:{name:“xyz”},1:{name:“pqr”},2:{name:“abc”};
for(对象结果中的常量项)
console.log(objResult[item])
不要使用对象,而是使用数组:
var arrResult = [{name:"xyz"}, {name:"pqr"}, {name:"abc"}];
这将有一个.length
属性,可以使用for…of
循环进行正常迭代
如果您实际取回了一个对象,最好将其转换为数组:
var objResult = {0:{name:"xyz"}, 1:{name:"pqr"}, 2:{name:"abc"}};
var arrResult = Object.assign([], objResult);
使用ES5或更高版本时,您可以在一行代码中输入对象值,如下所示:
Object.values(objResult).map(i => console.log(i));
在这里,您首先使用Object.values(objResult)创建一个值数组,然后使用map函数迭代每个元素
如果您不想使用map函数,您可以使用循环(例如“for of”或“for in”)迭代数组。您可以使用
Object.values
或Object.entries
甚至Object.keys
,具体取决于您对对象本身的需要,然后迭代这些结果(因为它们现在是一个数组)使用forEach
或map
var objResult={0:{name:“xyz”},1:{name:“pqr”},2:{name:“abc”};
Object.values(objResult).forEach(({name})=>console.log(name))代码>根据您的指定,我们可以使用,但需要一些修改
var objResult = {0:{name:"xyz"}, 1:{name:"pqr"}, 2:{name:"abc"}};
for(let key in objResult) {
let value = objResult[key].name;
console.log(value);
}
希望,这对您有所帮助另一种方法是使用Object.keys()
方法
它返回对象中的键列表,然后您可以迭代该列表以获取值
for(let key in Object.keys(objResult)) {
console.log(objResult[key]);
}
对象不像数组那样自动具有length
属性。此外,对象属性是无序的,不能保证所有浏览器都能以相同的顺序获得它们。@在ES 2015中,现代浏览器在一定程度上保证了Kaddath属性的排序@connexo完全同意,但你不能保证人们会使用现代浏览器(除非你特别同意)