Я пытаюсь использовать API для сайта bitfinex. по ценам на биткойны. с этим кодом.

https://api.bitfinex.com/v2/tickers?symbols=tBTCUSD

Я получаю это

[["tBTCUSD",11437,106.37262285,11438,63.64002459,595,0.0549,11437,28751.21271922,11487,10771]]

Я использовал этот код, чтобы вытащить его из ссылки.

$(document).ready(function(){
    $.get("https://api.bitfinex.com/v2/tickers?symbols=tBTCUSD", function(data){

    });
});

Проблема Я новичок в JavaScript, я посмотрел на W3School для массива JavaScript, и кажется, что я получаю информацию в виде массива. или какой-нибудь другой формат в виде массива. W3School | Массивы JavaScript. Массив начинается и заканчивается [], но в информации о получении есть двойные скобки.

На что я смотрю? а как справиться?

1
Abdullah Salma 3 Мар 2018 в 18:45

5 ответов

Лучший ответ

Вы смотрите на 2d массив.

Вы можете получить "tBTCUSD" с помощью data[0][0] и 11437 с помощью data[0][1] и т. Д.

1
Rhys 3 Мар 2018 в 15:51

Это что-то вроде массива в массиве, поэтому для получения массива используйте его следующим образом

$(document).ready(function(){
    $.get("https://api.bitfinex.com/v2/tickers?symbols=tBTCUSD", function(data){
        var arrayElements = data[0]; // First index
        console.log(arrayElements); // You will get an array
    });
});

Попробуй !

0
Kundan Singh Chouhan 3 Мар 2018 в 15:51

Есть несколько способов сделать это. Использование синтаксиса распространения является одним из способов. Синтаксис Spread удалит внутренний массив. Например, [[1,2,3]] будет [1,2,3];

$(document).ready(function() {
  $.get("https://api.bitfinex.com/v2/tickers?symbols=tBTCUSD", function(data) {
    console.log(...data); // using spread operator
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
0
brk 3 Мар 2018 в 15:49

Вы получаете двумерный массив в ответ. Вы можете использовать Destructuring Assignment чтобы получить 1-D массив:

Рассмотрим двумерный массив:

let arr_2D = [[1, 2, 3, 'a', 'b', 'c']];
let [arr_1D] = arr_2D;

console.log(arr_1D);
 // Expected output: [1, 2, 3, 'a', 'b', 'c']

Рабочий пример .

$(document).ready(function() {
    $.get("https://api.bitfinex.com/v2/tickers?symbols=tBTCUSD", function(response) {
        let [data] = response;
        console.log(data);
    });
});
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
0
Mohammad Usman 3 Мар 2018 в 16:57

Вы получаете массив массивов. Поскольку вы запрашиваете только один символ, массив символов содержит только один результат. Не уверен, что еще сказать вам, попробуйте попросить два символа. Вы должны получить [[символ 1], [символ 2]].

0
jens 3 Мар 2018 в 15:51