2016-11-03 4 views
0

JSONオブジェクト(約4000個のオブジェクト)の配列が非常に大きいです。キーの1つの値は文字列であり、整数に変換して配列を反復し、そのキーの最大値を持つオブジェクトを引き出すことができます。ここでは、配列のサンプルです:私は何をしようとしているStringからJSON値を整数に変換する

[ 
    { 
    "id": "34567", 
    "title": "Some title", 
    "likes": "5", 
    "comments": "7", 
    "views": "3" 
    }, 
    { 
    "id": "34568", 
    "title": "Some title 2", 
    "likes": "4", 
    "comments": "7", 
    "views": "3" 
    }, 
    { 
    "id": "34569", 
    "title": "Some title 3", 
    "likes": "3", 
    "comments": "7", 
    "views": "3" 
    }, 
    { 
    "id": "34560", 
    "title": "Some title 4", 
    "likes": "2", 
    "comments": "7", 
    "views": "3" 
    } 
] 

は、配列を反復整数に「好き」の値を変換して、「好き」の最大値を持つオブジェクトを引き出しています。

+0

あなたは何を書こうとしましたか? 4000はそれほど大きくはありません。プロセスは単純です。 –

+0

これらの種類のシナリオを処理するには、Lodashのサードパーティスクリプトを試してください。 https://lodash.com/docs –

+0

ロダッシュは必要ありません。オブジェクトの上をループするだけで、 'parseInt'はlikesプロパティを持ち、最も高い類似番号のインデックスを格納します。 – str

答えて

2

これは単純なJavaScriptのである、このような何か:

if (myArray.length) { 

    var heighest = myArray[0]; 
    for (var i = 1; i < myArray.length; i++) { 
     var likes = parseInt(myArray[i].likes); 
     if (likes > heighest.likes) { 
      heighest = myArray[i]; 
     } 
    } 

    console.log(heighest); // logs object with id 34567 
} else { 
    console.log("No items in array"); 
} 
0

このソリューションをチェックします。 likesの値を一時変数に格納し、オブジェクトを現在の値に置き換えることによっても高い値が見つかった場合は置換します。

var items = [{ 
 
    "id": "34567", 
 
    "title": "Some title", 
 
    "likes": "5", 
 
    "comments": "7", 
 
    "views": "3" 
 
}, { 
 
    "id": "34568", 
 
    "title": "Some title 2", 
 
    "likes": "4", 
 
    "comments": "7", 
 
    "views": "3" 
 
}, { 
 
    "id": "34569", 
 
    "title": "Some title 3", 
 
    "likes": "3", 
 
    "comments": "7", 
 
    "views": "3" 
 
}, { 
 
    "id": "34560", 
 
    "title": "Some title 4", 
 
    "likes": "2", 
 
    "comments": "7", 
 
    "views": "3" 
 
}]; 
 

 
var best; 
 
var max = 0; 
 
for (var i = 0; i < items.length; i++) { 
 
    var likes = parseInt(items[i].likes); 
 
    if (likes > max) { 
 
    max = likes; 
 
    best = items[i]; 
 
    } 
 
} 
 

 
console.log(best);

関連する問題