如何将对象转换为数组并保存对象的 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" }
]
我有一些问题,我试图弄清楚一段时间,但没有任何帮助,因为我在使用来自 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" }
]