2016-08-30 12 views
-1

配列を含むMax Integer値を多次元配列から最初のJavascript /ノードを使用してソートする必要があります。Javascriptを使用して多次元配列から最大値を取得

[{ "DATA1":12、 "DATA2":60、 "DATA3":14.01、 "DATA4":0}、 { "DATA1"

[{"data1":8,"data2":10,"data3":20.25,"data4":0}, 
{"data1":12,"data2":60,"data3":14.01,"data4":0}, 

{"data1":30,"data2":32.19,"data3":22.51,"data4":0}] 

出力が必要「データ1」:8、「データ2」:10、「データ3」:20.25、「データ4」:0}]

第1の配列の最大値は60であるため、第2の配列は332.19、第3の配列の最大値は20.25です。

+1

はどの整数値に基づいていますか? –

+0

最大整数値 – GaneshKumar

+0

を含むすべての配列と結果のdata1、data2、data3、data4を比較すると、その場合の出力は間違っています。 –

答えて

2

ここにあります。問題の道出力することにより

var data= [ 
    {"data1":8,"data2":10,"data3":20.25,"data4":0}, 
    {"data1":12,"data2":60,"data3":14.01,"data4":0}, 
    {"data1":30,"data2":32.19,"data3":22.51,"data4":0} 
]; 
data.sort(function(a,b){ 
    return Math.max(b.data1,b.data2,b.data3,b.data4)-Math.max(a.data1,a.data2,a.data3,a.data4); 
}); 

console.log(data); 

は間違って..です それは次のようにする必要があります:

[ { data1: 12, data2: 60, data3: 14.01, data4: 0 }, 
    { data1: 30, data2: 32.19, data3: 22.51, data4: 0 }, 
    { data1: 8, data2: 10, data3: 20.25, data4: 0 } ] 
+0

もう一つ疑いがあります。私の "data [1] .data1 = 60"と考えるならば。私はdata1の値にprefrenceを与え、その配列を1st配列として作る必要があります。それを作る方法? – GaneshKumar

+0

コンパレータについて知る必要があります。必要に応じてsort()でコンパレータを渡すことができます。 – vkstack

0

Math.max

// the array to be sorted 
 
var data = [{ "data1": 8, "data2": 10, "data3": 20.25, "data4": 0 }, { "data1": 12, "data2": 60, "data3": 14.01, "data4": 0 }, { "data1": 30, "data2": 32.19, "data3": 22.51, "data4": 0 }]; 
 

 
// temporary array holds objects with position and sort-value 
 
var mapped = data.map(function (el, i) { 
 
     return { 
 
      index: i, 
 
      value: Math.max.apply(null, Object.keys(el).map(function (k) { 
 
       return el[k]; 
 
      })) 
 
     }; 
 
    }); 
 

 
// sorting the mapped array containing the reduced values 
 
mapped.sort(function (a, b) { 
 
    return b.value - a.value; 
 
}); 
 

 
// container for the resulting order 
 
var result = mapped.map(function (el) { 
 
    return data[el.index]; 
 
}); 
 

 
console.log(result); 
 
console.log(mapped);
.as-console-wrapper { max-height: 100% !important; top: 0; }
のコールを繰り返すことなく、より大きなデータセットの Sorting with mapと提案

+0

それはとてもいいですね。 – vkstack

関連する問題