循环并拉入一定数量的数据

2023-10-02前端开发问题
0

本文介绍了循环并拉入一定数量的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在寻找一种更好的方法来遍历 json 对象并拉入一定数量的对象.我只是对如何创建循环有点困惑.现在我正在手动硬编码并使用 [] 获取数据以获取密钥对值.我知道有更好的方法来做到这一点.

I'm looking for a better way to loop through a json object and pull in a certain amount of objects. I'm just a little confused on how to create the loop. Right now I'm manually hardcoding and getting the data using [] to get key pair values. I know there is a better way to do this.

这是我的代码:

fetch("https://api.coinmarketcap.com/v2/ticker/?start=0&limit=200")
.then((response) => {return response.json(); })
.then((resp => {
  console.log(resp);
  let price = resp.data;
  showPrice(price);
}))

function showPrice(cryptoPrice) {
  document.querySelector(".results").innerHTML = `
   <div class="container text-center">

     <div class="col-4">
       <h1>${cryptoPrice[1].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[1].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[1].symbol}</span>
     </div>

     <div class="col-4">
       <h1>${cryptoPrice[2].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[2].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[2].symbol}</span>
     </div>
      
     <div class="col-4">
       <h1>${cryptoPrice[52].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[52].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[52].symbol}</span>
     </div>

     <div class="col-4">
       <h1>${cryptoPrice[74].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[74].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[74].symbol}</span>
     </div>

     <div class="col-4">
       <h1>${cryptoPrice[109].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[109].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[109].symbol}</span>
     </div>
     
     <div class="col-4">
       <h1>${cryptoPrice[118].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[118].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[118].symbol}</span>
     </div>
     
     <div class="col-4">
       <h1>${cryptoPrice[131].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[131].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[131].symbol}</span>
     </div>

     <div class="col-4">
       <h1>${cryptoPrice[213].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[213].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[213].symbol}</span>
     </div>

     <div class="col-4">
       <h1>${cryptoPrice[291].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[291].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[291].symbol}</span>
     </div>

     <div class="col-4">
       <h1>${cryptoPrice[328].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[328].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[328].symbol}</span>
     </div>

     <div class="col-4">
       <h1>${cryptoPrice[372].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[372].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[372].symbol}</span>
     </div>

     <div class="col-4">
       <h1>${cryptoPrice[463].name}</h1>
       <p><b>Price:</b> <span class="dollar-amount">${cryptoPrice[463].quotes.USD.price}</span></p>
       <span><b>Symbol:</b> ${cryptoPrice[463].symbol}</span>
     </div>

   </div>
`;
}

.container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  flex-direction: row;
  max-width: 1080px;
  padding-left: 15px;
  padding-right: 15px;
  margin-left: auto;
  margin-right: auto;
}

.text-center {
  text-align: center;
}

.col-4 {
  flex: 0 0 33.3%;
  margin-bottom: 1em;
}

h1 {
  margin-bottom: 0;
}

.dollar-amount {
  color: green;
}

@media(max-width: 1000px) {
  .col-4 {
    flex: 0 0 49.9%;
  }
}

@media(max-width: 678px) {
  .col-4 {
    flex: 0 0 100%;
  }
}

<div class="results"></div>

如果您想获得更好的外观,这里是我正在开发的 codepen 的链接.https://codepen.io/Brushel/pen/mjrqXr

Here is a link to the codepen I'm working on if you'd like to get a better look. https://codepen.io/Brushel/pen/mjrqXr

推荐答案

https://codepen.io/dennisseah/pen/pZEpQo

fetch("https://api.coinmarketcap.com/v2/ticker/?start=0&limit=200")
  .then(response => {
    return response.json();
  })
  .then(resp => {
    var oData = Object.getOwnPropertyNames(resp.data).slice(0, 20).map(function(i) {
      return resp.data[i];
    });
    showPrice(oData);
  });

function showPrice(cryptoPrice) {
  var divs = cryptoPrice
    .map(function(price) {
      return `<div class="col-4">
      <h1>${price.name}</h1>
      <p><b>Price:</b> <span class="dollar-amount">${
        price.quotes.USD.price
      }</span></p>
      <span><b>Symbol:</b> ${price.symbol}</span>
    </div>`;
    })
    .join("");
  document.querySelector(".results").innerHTML = `
      <div class="container text-center">${divs}</div>`;
}

这篇关于循环并拉入一定数量的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

ajax请求获取json数据并处理的实例代码
ajax请求获取json数据并处理的实例代码 $.ajax({ type: 'GET', url: 'https://localhost:44369/UserInfo/EditUserJson',//请求数据 data: json,//传递数据 //dataType:'json/text',//预计服务器返回的类型 timeout: 3000,//请求超时的时间 //回调函数传参 suc...
2024-11-22 前端开发问题
215

js删除数组中指定元素的5种方法
在JavaScript中,我们有多种方法可以删除数组中的指定元素。以下给出了5种常见的方法并提供了相应的代码示例: 1.使用splice()方法: let array = [0, 1, 2, 3, 4, 5];let index = array.indexOf(2);if (index -1) { array.splice(index, 1);}// array = [0,...
2024-11-22 前端开发问题
182

layui 单选框、复选框、下拉菜单不显示问题如何解决?
1. 如果是ajax嵌套了 页面, 请确保 只有最外层的页面引入了layui.css 和 layui.js ,内层页面 切记不要再次引入 2. 具体代码如下 layui.use(['form', 'upload'], function(){ var form = layui.form; form.render(); // 加入这一句});...
2024-11-09 前端开发问题
313

JavaScript小数运算出现多位的解决办法
在开发JS过程中,会经常遇到两个小数相运算的情况,但是运算结果却与预期不同,调试一下发现计算结果竟然有那么长一串尾巴。如下图所示: 产生原因: JavaScript对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会...
2024-10-18 前端开发问题
301

JavaScript(js)文件字符串中丢失"\"斜线的解决方法
问题描述: 在javascript中引用js代码,然后导致反斜杠丢失,发现字符串中的所有\信息丢失。比如在js中引用input type=text onkeyup=value=value.replace(/[^\d]/g,) ,结果导致正则表达式中的\丢失。 问题原因: 该字符串含有\,javascript对字符串进行了转...
2024-10-17 前端开发问题
437

layui中table列表 增加属性 edit="date",不生效怎么办?
如果你想在 layui 的 table 列表中增加 edit=date 属性但不生效,可能是以下问题导致的: 1. 缺少日期组件的初始化 如果想在表格中使用日期组件,需要在页面中引入 layui 的日期组件,并初始化: script type="text/javascript" src="/layui/layui.js"/scrip...
2024-06-11 前端开发问题
455