Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
如何排序()使用javascript从API返回json数据_Javascript_Json - Fatal编程技术网

如何排序()使用javascript从API返回json数据

如何排序()使用javascript从API返回json数据,javascript,json,Javascript,Json,我知道这类问题已经得到了回答,但我就是找不到适合我的情况的答案,我正在从api获取json数据,然后我需要输入select,我想在之前进行排序 getCurrency(){ fetch('https://free.currencyconverterapi.com/api/v5/currencies') .then(response => response.json()) .then(data => { cons

我知道这类问题已经得到了回答,但我就是找不到适合我的情况的答案,我正在从api获取json数据,然后我需要输入select,我想在之前进行排序

getCurrency(){

        fetch('https://free.currencyconverterapi.com/api/v5/currencies')
        .then(response => response.json())
        .then(data => {
            const fromcurrencySelect = selectid('fromcurrency');
            const tocurrencySelect = selectid('tocurrency');

            var x;
            for (x in data.results) {

                const currencyName = data.results[x].currencyName;
                const currencyID = data.results[x].id  ;

                /*  */
                const option = createEle('option');
                option.value =  currencyID.sort() ;
                append(option, TextNode(currencyName.sort()) );
                append(fromcurrencySelect,option);

                const option2 = createEle('option');
                option2.value =  currencyID ;
                append(option2, TextNode(currencyName) );
                append(tocurrencySelect,option2);


            }
        })
        .catch(error => {  clog(error); })

    }
这是我的助手函数

function clog(message){
    return console.log(message);
}


function selectid(id){
    return document.getElementById(id);
}


function querysel(element){
    return document.querySelector(element);
}

function append(parent,element){
    return parent.appendChild(element);
}

function createEle(element){
    return document.createElement(element);           
}

function TextNode(element){
    return document.createTextNode(element);  
}

我是javascript的初学者,对由此带来的不便深表歉意,如有任何帮助,将不胜感激

您可以编写一个比较函数,使用对象上的属性对对象进行排序,如下所示:

data.results.sort(function(a, b){return a.currencyName- b.currencyName});

数组上的sort()方法接受一个compare函数,了解更多有关它的信息

helper函数对我来说与其说是帮助,不如说是阻碍;它除了创建混合使用不同大小写的非标准(且容易忘记)名称外,还添加了额外(不必要)的代码行:返回的JSON的结构是什么?你有一个例子吗?像这样,我尝试使用forEach,但遇到了问题,我不得不使用for(in)loop,因为我认为这个json是完整的,图片是编辑的。我不清楚这个问题,你想在使用之前根据键(EUR、BBD等)对json响应进行排序吗?挑剔:而不是
var x;对于(x在data.results中)
为什么不
for(让x在data.results中)