使用JS感染获取特定数据

时间:2019-10-15 20:17:36

标签: javascript json api fetch

有人在使用JavaScript提取时知道如何获取特定数据吗? 我正在与https://apiv2.bitcoinaverage.com/constants/exchangerates/global合作 并且不确定如何只选择一种货币。我有一个forEach循环,可以显示所有内容,但是不确定如何选择一个要显示的内容。 显示我使用的所有内容:

${data.rates[rate].name}
${data.rates[rate].rate}<br>

当我尝试只显示一个时,我尝试了几种不同的方法,但是我觉得这最有意义:

${data.rates[rate].name == dkk}
${data.rates[rate].rate}<br>

但是它什么也没做。有人知道如何指定何时只显示一组数据吗?

4 个答案:

答案 0 :(得分:0)

${data.rates[rate].name == dkk}

我假设这里的$ {}语法是JavaScript字符串插值。您在这里所说的是“内插.name和dkk之间的相等值”。因此,我认为这可能为您显示“ true”或“ false”。

首先要说的是

let displayName = '';
if (data.rates[rate].name === dkk) {
    displayName = data.rates[rate].name;
}

然后插值$ {displayName}。

如果这不是您要执行的操作,我们将不得不查看更多代码。

答案 1 :(得分:0)

let html = '';
for (let rateShort in data.rates) {
    const rateObj = data.rates[rateShort];
    html += `${rateObj.name} ${rateObj.rate}<br>`
}

引用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in#Examples

答案 2 :(得分:0)

  fetch('https://apiv2.bitcoinaverage.com/constants/exchangerates/global')
   .then(res => res.json())
   .then(data => data.rates.AED)
   .then(console.log)

由于获取语法返回了Promise,因此您可以使用.then来处理数据。在上面的代码中,我使用.then来从获取的数据中返回AED(阿拉伯联合酋长国的汇率)对象。希望对您有帮助

答案 3 :(得分:0)

在这里,OP认为最好注释一下如何解决此问题,以防将来有人看到此问题:

[TestMethod]
public void DocSecurity_Test()
{
    //https://stackoverflow.com/questions/58335624/is-there-a-programmatically-way-for-excels-protect-workbook
    var fi = new FileInfo(@"c:\temp\DocSecurity_Test.xlsx");
    if (fi.Exists)
        fi.Delete();

    using (var package = new ExcelPackage(fi))
    {
        //Create a simple workbook
        var workbook = package.Workbook;
        var worksheet = workbook.Worksheets.Add("Sheet1");
        worksheet.Cells["A1"].Value = "Test";

        //Extended properties is a singleton so reference it to generate the app.xml file
        //needed and add the security setting
        var extProps = workbook.Properties;
        extProps.SetExtendedPropertyValue("DocSecurity", "2");

        //Also need to tell the workbook itself but can only do it via XML
        var xml  = workbook.WorkbookXml;
        var att = xml.CreateAttribute("readOnlyRecommended");
        att.Value = "1";

        const string mainNs = @"http://schemas.openxmlformats.org/spreadsheetml/2006/main";
        var fileSharing = xml.CreateElement("fileSharing", mainNs);
        fileSharing.Attributes.Append(att);

        //Element must be at the beginning of the tree
        xml.DocumentElement.PrependChild(fileSharing);
        package.Save();
    }
}

因此,基本上您不能写“ .name == dkk”来获取货币名称。我实际上不得不编写一个if语句来检查名称=='currency name'。另外(对于此api至少),我无法编写currency(dkk)的简称,我必须在if语句中写全名。之后,获得货币的名称和汇率与遍历所有货币的汇率相同。 希望这对以后的人有帮助,如果您最终来到这里:)