1. 程式人生 > >for in 迴圈獲取json資料中'key'與'value'

for in 迴圈獲取json資料中'key'與'value'

 一、for in 方法

 a.for in 迴圈物件

var data = {name:'mcYang0929',age:'25',sex:'man'};

for(var key in data) {
	console.log(key);             //屬性名(key)
    console.log(data[key]);       //屬性值(value)
}

b.for in 迴圈陣列

var arr = ['React','CSS','HTML'];

for(var x in arr ){
    console.log(x);              //在陣列中的位置(index)
    console.log(arr [x]);        //陣列的值
};  

使用for in 可以遍歷陣列,但是會存在以下問題:

1.index索引為字串型數字,不能直接進行幾何運算

2.遍歷順序有可能不是按照實際陣列的內部順序

3.使用for in會遍歷陣列所有的可列舉屬性,包括原型。

所以for in更適合遍歷物件,不要使用for in遍歷陣列。

那麼除了使用for迴圈,如何更簡單的正確的遍歷陣列達到我們的期望呢,ES6中的for of會更好一點。

二、for of 方法(ES6)

var newArray=[1,2,4,5,6,7];
for (var value of newArray) {
  console.log(value);
}

注意,for in遍歷的是陣列的索引(即鍵名key),而for of遍歷的是陣列元素值(即value)。

綜上,建議for in 迴圈物件,for of迴圈陣列