2016-05-26 19 views
0

私はテーブルに次の応答を表示する必要があるシナリオが発生しました。値でJavaScriptオブジェクトを検索するには?

[ 
    { 
    "name": "Test", 
    "endPointURI": "http://10.10.10.1:123", 
    "successCount": 0, 
    "failureCount": 3761, 
    "successRate": 0.0, 
    "failureRate": 5.980012278871403, 
    "totalSent": 3761.0, 
    "totalSendRate": 5.980, 
    "latency": 0, 
    "oneMinuteSuccessRate": 0.0, 
    "fiveMinuteSuccessRate": 0.0, 
    "fifteenMinuteSuccessRate": 0.0, 
    "oneMinuteFailureRate": 9.971719382874516, 
    "fiveMinuteFailureRate": 23.609469948078925, 
    "fifteenMinuteFailureRate": 77.78484853747226, 
    "oneMinuteSendRate": 9.913005632492993, 
    "fiveMinuteSendRate": 23.60190467615165, 
    "fifteenMinuteSendRate": 77.7832824814743, 
    "lastSentSuccessTime": 0, 
    "sendRate": 5.980
    }, 
[ 
    { 
    "name": "Test2", 
    "endPointURI": "http://10.10.10.1:123", 
    "successCount": 0, 
    "failureCount": 3761, 
    "successRate": 0.0, 
    "failureRate": 5.980012278871403, 
    "totalSent": 3761.0, 
    "totalSendRate": 5.980, 
    "latency": 0, 
    "oneMinuteSuccessRate": 0.0, 
    "fiveMinuteSuccessRate": 0.0, 
    "fifteenMinuteSuccessRate": 0.0, 
    "oneMinuteFailureRate": 9.971719382874516, 
    "fiveMinuteFailureRate": 23.609469948078925, 
    "fifteenMinuteFailureRate": 77.78484853747226, 
    "oneMinuteSendRate": 9.913005632492993, 
    "fiveMinuteSendRate": 23.60190467615165, 
    "fifteenMinuteSendRate": 77.7832824814743, 
    "lastSentSuccessTime": 0, 
    "sendRate": 5.980
    }] 

私はここに私の一意のキーとして "名前" を持っています。

「名前」を持つJSON(またはjavascriptオブジェクト)の名前を返したいとします。

私は本当にここで混乱しています。助けてもらえますか?

+0

「ユニークキーを持つJSONだけを表示する」とはどういう意味ですか?あなたは名前列を表示したいだけですか?つまり、配列に重複があり、同じ名前を2回使用したとしても、テーブルに1つのレコードだけを表示したいのですか?また、どのようにテーブルをビルドする予定ですか?バニラのJavaScriptを使用するか、フレームワークを使用していますか? – xianwill

+0

@xianは質問を編集しました。基本的に名前が与えられて、私はjavascriptオブジェクトまたはJSONを取得する必要があります一致する値が含まれています。 (名前のために)。たとえば、「Test」という名前を付けると、最初のJSONが返されます。私はそれをテーブルに表示することができます。 – TechnoCorner

+0

@TechnoCorner同じ名前のオブジェクトが複数ある場合はどうなりますか? –

答えて

3

特定のnameプロパティを持つコレクション内のオブジェクトでのみ作業する場合は、Array.prototype.findメソッドを呼び出すことはできますか?

let tableData = collection.find(function(myObject) { 
    return myObject.name === 'Test' 
}) 
0

あなたはLINQののJSフレームワークはず... https://linqjs.codeplex.com/

Exmple:

var queryResult = Enumerable.from(jsonArray) 
    .where(function (x) { return x.name == "Test2" }) 
    .orderBy(function (x) { return x.totalSent }) 
    .select(function (x) { return x.endPointURI }).toArray(); 

Nugetリンク:https://www.nuget.org/packages/linq.js/

Nugetコード:インストール・パッケージlinq.js -Version 2.2 .0.2

0

私はそれを考え出した。

_.findWhere(results.attributes, {name: "Test"}) 

私の名前は一意であるので、私はfindWhereを使用しているが、それはユニークでなければ、私の代わりにfindWhereの見つけ使用することができます。 (UnderscoreJS)

ありがとうございました!

関連する問題