如何将对象转换为数组并保存对象的 id

How to convert objects to array and save the id's from the objects

我有一些问题,我试图弄清楚一段时间,但没有任何帮助,因为我在使用来自 API.[=14 的信息创建 div 时遇到了一些问题=]

让我解释一下我到底遇到了什么问题,然后是什么问题

首先:我从 cmc 得到 API 这是两个 url

     const bitcoinData = await fetch(`https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=${num}&limit=${numberOfCoins}&CMC_PRO_API_KEY=${apiKey.key}`)
    const bitcoinD = await bitcoinData.json()
    const bitcoinInfo = await fetch(`https://pro-api.coinmarketcap.com/v1/cryptocurrency/info?id=${array}&CMC_PRO_API_KEY=${apiKey.key}`)
    const bitcoinI = await bitcoinInfo.json()

*首先来自 api 的数组

*第二个来自 api

第一个用于所有数据,第二个用于每个硬币的徽标图像,因为第一个 url 没有徽标,所以我需要从 url 中获取徽标第二至第一。一切正常,但是当我尝试在我的网站上搜索结果以查找带有过滤器的硬币时,实际上它显示了除徽标之外的大部分信息,徽标始终保持在同一位置,但其余数据看起来不错。

-问题可能是无法对对象进行过滤...如果你们有解决我的问题的方法。

基本上我需要得到与第一个数组完全一样的第二个数组,但数字的 id 将保留在外面并以相同的顺序排列,然后它解决了我的问题 像这样:

fromThis = {
1: {
    id: 825,
    name: "Tether",
    symbol: "USDT",
},
825: {
    id: 825,
    name: "Tether",
    symbol: "USDT",
},

toThis = [{
1: {
    id: 825,
    name: "Tether",
    symbol: "USDT",
},
825: {
    id: 825,
    name: "Tether",
    symbol: "USDT",
}]

但重要的是要将 id 放在新数组的外面,而不是

的里面

这是无效的语法。

const toThis = [
1: {
    id: 825,
    name: "Tether",
    symbol: "USDT",
},
825: {
    id: 825,
    name: "Tether",
    symbol: "USDT",
}]

Uncaught SyntaxError: Unexpected token ':'

您可以将对象放在一个数组中即

const toThis = [
{
    id: 825,
    name: "Tether",
    symbol: "USDT",
},
{
    id: 825,
    name: "Tether",
    symbol: "USDT",
}]

你的 toThis 变量没有意义,你可以有一个对象数组,但是,除非你改变,否则你将无法拥有上面描述的 id变量的结构。

你可以通过 Map() 实现这一点,但是像这样:

const toThis = new Map();
for (const id in fromThis) {
    toThis.set(id, fromThis[id]);
}

// toThis map output
Map { 
    1: { id: 1, name: "Tether", symbol: "USDT" }, 
    825: { id: 825, name: "Tether", symbol: "USDT" }
 }

或者通过执行类似

的操作来创建一个对象数组(但您将无法在您指定的对象之外获取 id
const toThis = [];
for (const id in fromThis) {
    toThis.push(fromThis[id]);
}

// toThis array output
[ 
    { id: 1, name: "Tether", symbol: "USDT" }, 
    { id: 825, name: "Tether", symbol: "USDT" }
]