我知道这类问题已经得到了答案,但是我只是无法找到适合自己情况的答案,我正在从api获取json数据,因此我需要将其放入选择范围,而我想之前排序。
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的初学者,不便之处,敬请原谅。
答案 0 :(得分:0)
您可以编写一个比较函数来使用对象的属性对对象进行排序,如下所示:
data.results.sort(function(a, b){return a.currencyName- b.currencyName});
数组上的sort()方法接受比较函数,详细了解它here