【发布时间】:2021-09-06 15:54:00
【问题描述】:
console.log截图:
我想从下面不起作用的对象数组中选择前五个对象。要选择 5 个元素,我已应用 slice() 但它不起作用。当我控制结果时,它会向我显示它拥有的所有元素。请帮我这样做。下面是我的代码
async function getCoins() {
let url = 'https://bitbns.com/order/getTopTickerVolume/';
try {
let res = await fetch(url);
return await res.json();
} catch (error) {
console.log(error);
}
}
async function renderCurrency() {
let currencies = await getCoins();
//console.log(currencies,'JSHR')
let html = '';
var coinlist = [];
coinlist.push(currencies);
console.log(coinlist);
const fiveValues = coinlist.slice(0, 5);
console.log(fiveValues,"five")
for (const [key, value] of Object.entries(coinlist)) {
for (const [key1, value1] of Object.entries(value)) {
//console.log(value1,"hello")
var diff = value1.last_traded_price-value1.highest_buy_bid;
var change = diff.toFixed(2);
let htmlSegment = `<tr>
<td><img src="bitcoin.png">${key1}/INR</td>
<td>${value1.highest_buy_bid}</td>
<td>${change}</td>
</tr>`;
html += htmlSegment;
}
}
let banner = document.querySelector('#tablebody');
banner.innerHTML = html;
}
renderCurrency();
</script>
这是我得到的控制台日志结果
[
{
"BTC": {
"highest_buy_bid": 2627674.07,
"lowest_sell_bid": 2635150,
"last_traded_price": 2619002.02,
"volume": {
"max": "2662220.89",
"min": "2275000.00",
"volume": 126.32525071
}
},
"ETH": {
"highest_buy_bid": 155291.33,
"lowest_sell_bid": 155800,
"last_traded_price": 155789.27,
"volume": {
"max": "157995.43",
"min": "134430.00",
"volume": 1477.4024985
}
},
"XRP": {
"highest_buy_bid": 46.8,
"lowest_sell_bid": 47,
"last_traded_price": 47,
"volume": {
"max": "49.37",
"min": "40.16",
"volume": 1974895.82
}
},
"BNS": {
"highest_buy_bid": 5.38,
"lowest_sell_bid": 5.43,
"last_traded_price": 5.37,
"volume": {
"max": "5.49",
"min": "5.22",
"volume": 933417.9355
}
},
"DOGE": {
"highest_buy_bid": 16.183,
"lowest_sell_bid": 16.265,
"last_traded_price": 16.265,
"volume": {
"max": "17.259",
"min": "12.967",
"volume": 8058176
}
},
"ADA": {
"highest_buy_bid": 96.68,
"lowest_sell_bid": 96.69,
"last_traded_price": 96.68,
"volume": {
"max": "97.99",
"min": "79.00",
"volume": 3043873.8
}
},
"DOT": {
"highest_buy_bid": 1240,
"lowest_sell_bid": 1247.02,
"last_traded_price": 1247.41,
"volume": {
"max": "1288.28",
"min": "1027.33",
"volume": 39325.4208
}
},
"AAVE": {
"highest_buy_bid": 17245.38,
"lowest_sell_bid": 17389.92,
"last_traded_price": 17201.18,
"volume": {
"max": "17469.80",
"min": "13496.90",
"volume": 979.43
}
},
"BNB": {
"highest_buy_bid": 22100.31,
"lowest_sell_bid": 22256.47,
"last_traded_price": 22336.93,
"volume": {
"max": "22705.08",
"min": "18051.97",
"volume": 6377.23
}
},
"SOL": {
"highest_buy_bid": 2299.08,
"lowest_sell_bid": 2319,
"last_traded_price": 2294.67,
"volume": {
"max": "2421.79",
"min": "1610.00",
"volume": 21862.1351
}
},
"MATIC": {
"highest_buy_bid": 91.596,
"lowest_sell_bid": 91.6,
"last_traded_price": 91.6,
"volume": {
"max": "95.550",
"min": "73.380",
"volume": 714962
}
},
"UNI": {
"highest_buy_bid": 1372.81,
"lowest_sell_bid": 1386.59,
"last_traded_price": 1396.46,
"volume": {
"max": "1414.69",
"min": "1093.00",
"volume": 1235.39
}
},
"CRV": {
"highest_buy_bid": 117.15,
"lowest_sell_bid": 118.52,
"last_traded_price": 116.61,
"volume": {
"max": "120.50",
"min": "96.35",
"volume": 367729.311
}
},
"YFI": {
"highest_buy_bid": 2429207.42,
"lowest_sell_bid": 2453040.98,
"last_traded_price": 2428926.85,
"volume": {
"max": "2491352.60",
"min": "1971910.23",
"volume": 7.209645
}
},
"CAKE": {
"highest_buy_bid": 1016.69,
"lowest_sell_bid": 1026.83,
"last_traded_price": 1016.69,
"volume": {
"max": "1047.52",
"min": "757.68",
"volume": 25417.21
}
}
}
]
【问题讨论】:
-
coinlist在coinlist.push(currencies)之后只有一个元素。你希望如何从中分割出 5 个元素? -
你有一个包含一个对象的数组。你想得到什么结果?
-
您返回的对象是一个数组,但它只有一个元素。注意 [{ anyObject}]。
-
对象有 15 个属性。你想获得其中的 5 个属性吗?
-
先把它转换成数组就可以了。
标签: javascript arrays api object fetch