2016-05-26 2 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
    }] 

У меня есть "Name", как мой уникальный ключ здесь.

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

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

+0

Что вы подразумеваете под «дисплеем ТОЛЬКО JSON, у которого есть уникальный ключ?» Вы имеете в виду, что хотите отобразить только столбец имен? Или вы имеете в виду, что в массиве есть дубликаты, и вы хотите показывать только одну запись в таблице, даже если вы можете иметь одно и то же имя дважды? Также - как вы планируете строить таблицу - программно с помощью ванильного JavaScript или используете фреймворк? – xianwill

+0

@xianwill отредактировал вопрос. В основном, учитывая имя, мне нужно получить объект javascript или JSON, который содержит соответствующее значение. (для названия). Например, если я даю имя «Тест», тогда сначала должен быть возвращен 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 Код: Install-Package linq.js -версия 2.2 .0.2

0

Я думаю я понял.

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

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

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

Смежные вопросы