ES6是JavaScript的一個版本,它帶來了很多新的特性和語法糖。循環json也是其中的一項重要的操作。循環json可以使用for…in循環、Object.keys()和Object.entries()方法,下面我們分別來介紹一下這三種方法的用法和區別。
一、for…in循環:
for(let key in obj){ console.log(key); console.log(obj[key]); }
for…in循環可以遍歷一個對象的所有可枚舉屬性,包括繼承的屬性。因此,在循環過程中要進行hasOwnProperty()方法的判斷,以避免循環到繼承的屬性。
二、使用Object.keys()方法:
let keys = Object.keys(obj); for(let i = 0; i< keys.length; i++){ console.log(keys[i]); console.log(obj[keys[i]]); }
Object.keys()方法會返回一個由所有可枚舉屬性的鍵名組成的數組。我們可以使用這個數組來循環遍歷對象的屬性。這種方法避免了for…in循環可能會循環到繼承屬性的問題。
三、使用Object.entries()方法:
for(let [key, value] of Object.entries(obj)){ console.log(key); console.log(value); }
Object.entries()方法也會返回一個由元素為鍵值對的數組組成的數組。這個方法使用了ES6的解構語法。我們可以直接循環這個數組來遍歷對象的屬性值。使用這個方法可以避免for…in循環可能會循環到繼承屬性的問題,同時也省略了Object.keys()方法需要的鍵名數組。
總結:
使用哪一種方法循環遍歷json,取決于實際需求。如果要遍歷一個對象的屬性和繼承屬性,那么就需要使用for…in循環;如果只需要遍歷一個對象的可枚舉屬性,就可以使用Object.keys()方法;如果想要遍歷一個對象的所有屬性值,那就可以使用Object.entries()方法。