我有一个对象。我想在JavaScript中迭代这个对象。应该怎么做?
var dictionary = {
"data": [
{"id":"0","name":"ABC"},
{"id":"1","name":"DEF"}
],
"images": [
{"id":"0","name":"PQR"},
{"id":"1","name":"xyz"}
]
};
我有一个对象。我想在JavaScript中迭代这个对象。应该怎么做?
var dictionary = {
"data": [
{"id":"0","name":"ABC"},
{"id":"1","name":"DEF"}
],
"images": [
{"id":"0","name":"PQR"},
{"id":"1","name":"xyz"}
]
};
您可以使用以下代码完成此操作。首先使用dictionary.data获取数据数组并将其分配给data变量。之后,您可以使用普通的for循环对其进行迭代。每一行都将是该数组中的一个行对象。
var data = dictionary.data;
for (var i in data)
{
var id = data[i].id;
var name = data[i].name;
}
您可以采用类似的方法来迭代图像数组。还有一种方法(对EcmaScript5而言是新的):
dictionary.data.forEach(function(item){
console.log(item.name + ' ' + item.id);
});
图片处理采用相同的方法
类似于这样:
var dictionary = {"data":[{"id":"0","name":"ABC"},{"id":"1", "name":"DEF"}], "images": [{"id":"0","name":"PQR"},{"id":"1","name":"xyz"}]};
for (item in dictionary) {
for (subItem in dictionary[item]) {
console.log(dictionary[item][subItem].id);
console.log(dictionary[item][subItem].name);
}
}
function * deepEntries(obj) {
for(let [key, value] of Object.entries(obj)) {
if (typeof value !== 'object')
yield [key, value]
else
for(let entries of deepEntries(value))
yield [key, ...entries]
}
}
const dictionary = {
"data": [
{"id":"0","name":"ABC"},
{"id":"1","name":"DEF"}
],
"images": [
{"id":"0","name":"PQR"},
{"id":"1","name":"xyz"}
]
}
for(let entries of deepEntries(dictionary)) {
const key = entries.slice(0, -1).join('.')
const value = entries[entries.length-1]
console.log(key, value)
}
for(index in dictionary) {
for(var index in dictionary[]){
// do something
}
}
使用 for 和 foreach 循环
var dictionary = {
data: [{ id: "0", name: "ABC" }, { id: "1", name: "DEF" }],
images: [{ id: "0", name: "PQR" }, { id: "1", name: "xyz" }]
};
dictionary.data.forEach(item => {
console.log(item.id + " " + item.name);
});
for (var i = 0; i < dictionary.data.length; i++) {
console.log(dictionary.data[i].id + " " + dictionary.data[i].name);
}
var dictionary = {
"data":[{"id":"0","name":"ABC"}, {"id":"1","name":"DEF"}],
"images": [ {"id":"0","name":"PQR"},"id":"1","name":"xyz"}]
};
for (var key in dictionary) {
var getKey = dictionary[key];
getKey.forEach(function(item) {
console.log(item.name + ' ' + item.id);
});
}
以下是您的所有选项:
for...of
(ES2015)var dictionary = {
"data": [
{"id":"0","name":"ABC"},
{"id":"1","name":"DEF"}
],
"images": [
{"id":"0","name":"PQR"},
{"id":"1","name":"xyz"}
]
};
for (const entry of dictionary.data) {
console.log(JSON.stringify(entry))
}
Array.prototype.forEach
(ES5)Array.prototype.forEach
}}(ES5)
var dictionary = {
"data": [
{"id":"0","name":"ABC"},
{"id":"1","name":"DEF"}
],
"images": [
{"id":"0","name":"PQR"},
{"id":"1","name":"xyz"}
]
};
dictionary.data.forEach(function(entry) {
console.log(JSON.stringify(entry))
})
for()
(ES1)for()
(ES1)var dictionary = {
"data": [
{"id":"0","name":"ABC"},
{"id":"1","name":"DEF"}
],
"images": [
{"id":"0","name":"PQR"},
{"id":"1","name":"xyz"}
]
};
for (let i = 0; i < dictionary.data.length; i++) {
console.log(JSON.stringify(dictionary.data[i]))
}
dictionary.data
,只需遍历dictionary
即可。 - brendon-aifor...in
用于迭代对象属性。对于数组,请使用for...of
。 - connexo