Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting Sort()不工作_Sorting_Vue.js_Axios - Fatal编程技术网

Sorting Sort()不工作

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

我对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: '#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
内容发出来吗?