2016-11-16 67 views
0
var legend=[{"min":0, 
      "max":first_color, 
      "color":"#1a9850" 
    }, 
    { 
     "min":first_color, 
     "max":sec_color, 
     "color":"#fee08b" 
    }, 
    { 
     "min":sec_color, 
     "max":thrd_color, 
     "color":"#ff3300" 
    }, 
    { 
     "min":thrd_color, 
     "max":frth_color, 
     "color":"#d73027" 
     "Abc":"gsfg" 
    } 

    ]; 

我想知道每個對象的屬性數。例如。前3個對象有3個屬性,第4個對象有4個道具等。如何查找JSON對象的長度

+1

這不是JSON;這是一個JavaScript數組。 – Biffen

+0

1.迭代2.獲取數組3中的當前元素。'Object.keys(arrayEl).length' – Tushar

+0

你可以發佈你的代碼嗎?新的js –

回答

3

迭代數組並獲取對象屬性名稱數。

var legend = [{ 
 
    "min": 0, 
 
    "max": 'first_color', 
 
    "color": "#1a9850" 
 
}, { 
 
    "min": 'first_color', 
 
    "max": 'sec_color', 
 
    "color": "#fee08b" 
 
}, { 
 
    "min": 'sec_color', 
 
    "max": 'thrd_color', 
 
    "color": "#ff3300" 
 
}, { 
 
    "min": 'thrd_color', 
 
    "max": 'frth_color', 
 
    "color": "#d73027", 
 
    "Abc": "gsfg" 
 
}]; 
 

 
var res = legend.map(function(v) { 
 
    console.log(Object.keys(v).length); 
 
    return Object.keys(v).length; 
 
}); 
 

 
console.log(res);

+1

我真的必須記得使用地圖更多的+1一個很好的乾淨的解決方案! – Brian

+0

又一個愚蠢的問題如果我想知道哪個字段在json數組中持續存在,那麼最小最大和最大顏色以及第四最小最大顏色和Abc等等 –

+0

因爲我們必須知道關鍵字 –

2

但是一個更好的解決辦法是原型對象

Object.size = function(obj) { 
    return Object.keys(obj).length; 
} 
+0

爲什麼這是一個更好的解決方案? – 2016-11-16 06:14:25

+0

@torazaburo因爲它會比1次更清潔。 Object.size(obj)更簡單,更易讀。 – Amit

0

可以使用Object.keys

console.log(Object.keys(legend[0]).length)// 3 

console.log(Object.keys(legend[3]).length);//4