Как искать объект 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.980012307671908,
    "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.980012307671908
  },
[
  {
    "name": "Test2",
    "endPointURI": "http://10.10.10.1:123",
    "successCount": 0,
    "failureCount": 3761,
    "successRate": 0.0,
    "failureRate": 5.980012278871403,
    "totalSent": 3761.0,
    "totalSendRate": 5.980012307671908,
    "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.980012307671908
  }]

У меня есть "Имя" в качестве моего уникального ключа здесь.

Учитывая имя, я хочу вернуть JSON (или объект javascript), который имеет "Имя".

Я действительно смущен здесь. Может кто-нибудь помочь?

3 ответа

Если вы хотите работать только с объектом в вашей коллекции с определенным name собственность, вы можете просто позвонить Array.prototype.find метод?

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

Я думаю, что я понял это.

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

Поскольку мое имя уникально, я использовал findWhere, но если оно не уникально, я мог бы использовать find вместо findWhere. (UnderscoreJS)

Спасибо за вашу помощь!

Вы должны Linq Js Framework... 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 Code: Install-Package linq.js -Version 2.2.0.2

Другие вопросы по тегам