Sorting Sort()不工作
我对coinmarketcap api中排名数据的sort()有问题。通过ajax api调用,sort可以返回具有正确排名的数组。对于axios api调用,如下图所示,它不会 以下是我使用axios和vue.js的代码:Sorting Sort()不工作,sorting,vue.js,axios,Sorting,Vue.js,Axios,我对coinmarketcap api中排名数据的sort()有问题。通过ajax api调用,sort可以返回具有正确排名的数组。对于axios api调用,如下图所示,它不会 以下是我使用axios和vue.js的代码: let coinMarket = 'https://api.coinmarketcap.com/v2/ticker/?limit=10' let updateInterval = 60 * 1000; let newApp = new Vue({ el: '#coin
let coinMarket = 'https://api.coinmarketcap.com/v2/ticker/?limit=10'
let updateInterval = 60 * 1000;
let newApp = new Vue({
el: '#coinApp',
data: {
// data within an array
results: []
},
methods: {
getCoins: function() {
axios
.get(coinMarket)
.then((resp) => {
this.results = formatCoins(resp);
});
},
getColor: (num) => {
return num > 0 ? "color:green;" : "color:red;";
},
},
created: function() {
this.getCoins();
}
})
setInterval(() => {
newApp.getCoins();
},
updateInterval
);
function formatCoins(res) {
var coinDataArray = []
Object.keys(res.data).forEach(function(key) {
coinDataArray.push(res.data[key])
})
coinDataArray.sort(function(a,b) {
return a.rank > b.rank
})
console.log(coinDataArray)
}
我哪里做错了 如果您查看
https://api.coinmarketcap.com/v2/ticker/?limit=10
,您会发现所需的数据位于res.data.data
下,而不是res.data
下
因此,在函数=中,将res.data
替换为res.data.data
,然后工作
Vue.config.productionTip=false
让我们共同努力吧https://api.coinmarketcap.com/v2/ticker/?limit=10'
让updateInterval=60*1000;
功能(res){
var coinDataArray=[]
Object.key(res.data.data).forEach(函数(key){
coinDataArray.push(res.data.data[key])
})
coinDataArray.sort(函数(a,b){
返回a.rank-b.rank
})
返回数据数组
}
让newApp=newvue({
el:“#coinApp”,
数据:{
//数组中的数据
结果:[]
},
方法:{
getCoins:function(){
axios
.get(货币市场)
。然后((resp)=>{
此结果=格式化硬币(resp);
});
},
getColor:(num)=>{
return num>0?“颜色:绿色;”:“颜色:红色;”;
},
},
已创建:函数(){
这个。getCoins();
}
})
设置间隔(()=>{
newApp.getCoins();
},
更新间隔
);代码>
{{index}}-{record.name}:{{{record.rank}
按升序排序的正确方法是a.rank-b.rank
检查Hi,我已经尝试过了,但是结果是一样的。您的数据看起来如何?确保您的排名
值是数字排名数据是数字。我真是摸不着头脑。你能把你的coinDataArray
内容发出来吗?