У меня есть ответ JSON, указанный в списке, и я хочу получить доступ к первому "name": "Facebook, Inc."
{
"ResultSet": {
"Query": "FB",
"Result": [{
"symbol": "FB",
"name": "Facebook, Inc.",
"exch": "NAS",
"type": "S",
"exchDisp": "NASDAQ",
"typeDisp": "Equity"
}, {
"symbol": "FBIOX",
"name": "Fidelity Select Biotechnology Portfolio",
"exch": "NAS",
"type": "M",
"exchDisp": "NASDAQ",
"typeDisp": "Fund"
}, {
"symbol": "FBP",
"name": "First Bancorp",
"exch": "NYQ",
"type": "S",
"exchDisp": "NYSE",
"typeDisp": "Equity"
}, {
"symbol": "FBNK",
"name": "First Connecticut Bancorp, Inc.",
"exch": "NMS",
"type": "S",
"exchDisp": "NASDAQ",
"typeDisp": "Equity"
}, {
"symbol": "FBHS",
"name": "Fortune Brands Home & Security, Inc.",
"exch": "NYQ",
"type": "S",
"exchDisp": "NYSE",
"typeDisp": "Equity"
}, {
"symbol": "FB2A.DE",
"name": "Facebook, Inc.",
"exch": "GER",
"type": "S",
"exchDisp": "XETRA",
"typeDisp": "Equity"
}, {
"symbol": "FBIZ",
"name": "First Business Financial Services, Inc.",
"exch": "NMS",
"type": "S",
"exchDisp": "NASDAQ",
"typeDisp": "Equity"
}, {
"symbol": "FBR",
"name": "Fibria Celulose S.A.",
"exch": "NYQ",
"type": "S",
"exchDisp": "NYSE",
"typeDisp": "Equity"
}, {
"symbol": "FBC",
"name": "Flagstar Bancorp Inc.",
"exch": "NYQ",
"type": "S",
"exchDisp": "NYSE",
"typeDisp": "Equity"
}, {
"symbol": "FFG",
"name": "FBL Financial Group Inc.",
"exch": "NYQ",
"type": "S",
"exchDisp": "NYSE",
"typeDisp": "Equity"
}]
}
}
Я использовал следующий код JavaScript, чтобы получить значение:
var res = jQuery.map(data.ResultSet.Result, function (item) {
var asset = {
symbol:item.symbol,
name:item.name,
type:item.type,
exch:item.exchDisp
};
var cname=asset.name
Но я получаю фамилию в переменную cname
. как мне ввести имя в cname
?
3 ответа
var resultArray = data.ResultSet.Result;
var cname = "";
var firstRecord = resultArray[0];
cname = firstRecord.name;
Вы получаете последнее значение, потому что вы используете его внутри map
.
Он заменит предыдущий cname
, когда будет отображаться новый элемент, поскольку он создает каждый раз новый cname
.
Поместите свой cname
вне map
Как это
var res = jQuery.map(data.ResultSet.Result, function(item) {
var asset = {
symbol: item.symbol,
name: item.name,
type: item.type,
exch: item.exchDisp
};
return asset;
});
var cname = res[0].name
Я бы использовал функцию поиска Лодаша следующим образом:
var target = _.find(data.ResultSet.Result, function(r){
return r.name === "Facebook, Inc.";
})
Вот jsfiddle:
https://jsfiddle.net/mckinleymedia/hxnp99vg/
Это найдет первый объект в вашем массиве, который соответствует условному выражению в возвращаемом файле: r.name === "Facebook, Inc.".
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.