Объединить переменную в вызов JSON с Google Sheets - PullRequest
0 голосов
/ 05 февраля 2019

Я делаю вызов API для ограничения монетного рынка и перебираю диапазон в электронной таблице крипто-тикеров Google.

Код выглядит следующим образом:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("test");
var r = sheet.getRange('B2:B17').getValues();
for (var i = 0; i < r.length; i++) {
    symbol = r[i][0];
    url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=' + symbol + '&convert=USD&CMC_PRO_API_KEY=8192e0b9-fda4-4668-9251-3dfded3bdc2f';
    //url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=BTC&convert=USD&CMC_PRO_API_KEY=abcdetc'
    var resp = UrlFetchApp.fetch(url);
    var result = JSON.parse(resp.getContentText());
    var price = result.data.BTC.quote.USD.price;
    sheet.getRange(2 + i, 3).setValue(price);

Это работает, но, очевидно, предоставляет только цену для Биткойна, потому что BTC находится в линии цены вар.

ВместоBTC Я хочу иметь + символ +, чтобы код мог перебрать все различные символы.Я пробовал это:

var price = result + "." + data + "." + symbol + "." + quote + "." + USD + "." price

Это не работает.Я пробовал другие варианты использования "", которые также были неудачными, а также пытались объединить строку отдельно.

Как это можно сделать правильно?

Заранее спасибо!

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете попробовать что-то вроде этого:

string.concat(string1, string2, ..., stringX)

или

var arr = ['a1', 'b1', 'c1']; console.log(arr.join(',')); // 'a1,b1,c1'.

Явное приведение типа можно выполнить как,

var price = ([String(result), String(data), String(symbol), String(quote), String(USD), String(price)]).join(".")

...