2016-11-16 14 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

もう1つの愚かな質問もし私が最初にjson配列で納得のいくフィールドを知りたければ、最小最大値と最大値と4分1分最大値とAbc等があります –

+0

オブジェクトを反復するためのcozキー –

2
  • 'JSON' オブジェクトは、間違った用語です。 'Length of a JavaScript object' を参照
  • 、最善の解決策は、次のようになります。

    Object.keys(obj).length

しかし、よりよい解決策は、あなたがObject.keysを使用することができ、オブジェクト

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

それはなぜより良い解決策ですか? –

+0

@torazaburoそれは1つ以上の使用のためにきれいになるので。 Object.size(obj)はよりシンプルで人間が読むことができます。 – Amit

0

のプロトタイプを作成することです

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

console.log(Object.keys(legend[3]).length);//4 
関連する問題