在JavaScript中,JSON對象是一種非常方便的數據格式,可以用于存儲和傳輸數據。而當我們需要遍歷JSON對象時,可以使用迭代器(iterator)來實現。
// 定義一個測試JSON對象
var person = {
name: 'Tom',
age: 18,
gender: 'male'
};
// 定義迭代器
function iterator(obj) {
var keys = Object.keys(obj); // 獲取對象所有屬性名
var index = 0; // 迭代索引
return {
next: function() {
if (index< keys.length) { // 如果還有下一個屬性
var key = keys[index++]; // 獲取下一個屬性名
return {value: obj[key], done: false}; // 返回對應屬性值和done屬性,表示還未完成迭代
} else { // 如果迭代結束
return {value: undefined, done: true}; // 返回undefined作為結果,done屬性表示迭代完成
}
}
}
}
// 使用迭代器遍歷JSON對象
var it = iterator(person);
var result;
while ((result = it.next()).done === false) {
console.log(result.value); // 輸出屬性值
}
在以上代碼中,我們首先定義了一個測試JSON對象person,然后定義了一個iterator函數用于返回可迭代對象。在iterator函數中,我們使用Object.keys()方法獲取person對象所有屬性名,并定義了一個迭代索引index。接下來返回一個包含next方法的對象,next方法用來返回下一個屬性值和done屬性。當迭代結束時,返回undefined作為結果并將done屬性設置為true。
最后,我們使用while循環遍歷JSON對象。在每一次循環中,我們使用可迭代對象的next方法獲取下一個屬性值,并輸出到控制臺。