gpt4 book ai didi

javascript - 从 Json 对象获取唯一值

转载 作者:行者123 更新时间:2023-11-28 14:32:14 28 4
gpt4 key购买 nike

我正在尝试从公开的 API 中获取所有算法:

var lookup = {}
var result = []

axios.get('https://whattomine.com/calculators.json')
.then(function(response) {
console.log(response)
for (var item, i = 0; item = response["coins"][i++];) {
var algorithm = item.algorithm

if (!(algorithm in lookup)) {
lookup[algorithm] = 1
result.push(algorithm)
}
}
console.log(result)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.min.js"></script>

正如你所看到的,我正在使用 axios 来查询 api。然后我想过滤所有不在查找中的算法。

因此我想要:[]

但是,我目前已恢复['Keccak', 'Scrypt-OG', 'X11']

有什么建议我做错了什么吗?

感谢您的回复!

最佳答案

正如其他人所说,response 是一个具有 data 属性的对象,包含实际的响应。另外,您试图像数组一样循环它们,但它是一个以硬币名称作为属性的对象。 Lodash可以让您的生活更轻松:

axios.get('https://whattomine.com/calculators.json')
.then(response => {
const coins = response.data.coins;
const result = _.uniq(_.map(coins, item => item.algorithm));
console.log(result);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>

  • _.map()允许您循环遍历数组或对象,这在这里很有用。

  • _.uniq()将从值数组中删除任何重复项。

关于javascript - 从 Json 对象获取唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51000849/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com