Estoy tratando de usar la API para el sitio web de Bitfinex. para precios de bitcoin. con este código

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

Recibo esto

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

Usé este código para sacarlo del enlace.

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

    });
});

Problema Soy principiante en javascript, busqué en W3School la matriz de javascript y parece que recibo información como una matriz. o algún formato como una matriz. W3School | Matrices de JavaScript. La matriz comienza y termina con [] pero en la información de recepción hay dos corchetes.

Que estoy mirando y como manejarlo

1
Abdullah Salma 3 mar. 2018 a las 18:45

5 respuestas

La mejor respuesta

Estás viendo una matriz 2D.

Puede recuperar "tBTCUSD" con data[0][0] y 11437 con data[0][1], etc.

1
Rhys 3 mar. 2018 a las 15:51

Es algo así como una matriz en una matriz, así que para obtener una matriz úsela así

$(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
    });
});

Intentalo !

0
Kundan Singh Chouhan 3 mar. 2018 a las 15:51

Hay varias formas de hacerlo. La sintaxis extendida es una de las formas. La sintaxis extendida eliminará la matriz interna. Por ejemplo, [[1,2,3]] será [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 mar. 2018 a las 15:49

Obtendrá una matriz bidimensional en respuesta. Puede usar Destructuring Assignment para obtener una matriz 1-D:

Considere una matriz 2D:

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']

Ejemplo de trabajo:

$(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 mar. 2018 a las 16:57

Estás obteniendo una variedad de matrices. Como solo solicita un símbolo, la matriz de símbolos contiene solo un resultado. No estoy seguro de qué más decirle, intente pedir dos símbolos. Debería obtener [[símbolo 1], [símbolo 2]].

0
jens 3 mar. 2018 a las 15:51