オブジェクトobj
のvalue値に対してソートしたいんでしょうが、
ソート条件が提示されていないので、
JavaScript
1var obj = {};
2obj.data1 = 2;
3obj.data2 = 1;
4obj.data3 = 4;
5obj.data4 = 3;
6obj.data5 = 10;
7//obj.dataX = [] や {} は考慮してない。
8
9// 何かしらの処理?
10
11var array = [];
12for(var i=0, key=Object.keys(obj); val=key[i]; i++ ){
13 array.push(val);
14}
15// objの値をarrayに詰めた。
16
17// ソート処理
18
19/*
20 * 数値としてソートする場合(Date型の比較もこっち)
21 * 昇順
22 * array.sort(function(a, b){return a - b;});
23 * -> [1, 2, 3, 4, 10]
24 * 降順
25 * array.sort(function(a, b){return b - a;});
26 * -> [10, 4, 3, 2, 1]
27 *
28 * 文字列としてソートする場合
29 * 昇順
30 * array.sort():
31 * -> [1, 10, 2, 3, 4]
32 * 降順
33 * array.reverse();
34 * -> [4, 3, 2, 10, 1]
35 *
36 * その他条件(function名は適宜変更)
37 * array.sort( compare(a, b) );
38 *
39 * function compare(a, b){
40 * 比較条件に合わせて返却する値を決める
41 * a < b を示す場合 return -1;
42 * a = b を示す場合 return 0;
43 * a > b を示す場合 return 1;
44 * }
45 */
46
47// 上位3位まで取り出し
48var n = (array.length >= 3) ? 3 : array.length;
49for(var i=0; i<n; i++){
50 console.log( array[i] );
51}
52
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/25 02:20