Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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中的排序列表降序_Javascript_Jquery_Sorting_For Loop_Arraylist - Fatal编程技术网

JavaScript中的排序列表降序

JavaScript中的排序列表降序,javascript,jquery,sorting,for-loop,arraylist,Javascript,Jquery,Sorting,For Loop,Arraylist,按描述顺序对JavaScript中的列表记录进行排序 var数//这里我们从API中获取动态编号 var检验//这里我们从API获取动态文本 对于(var i;i您必须使用带有比较函数的Array.prototype.sort 但我不完全理解你的代码 const dataList=[“1.您拥有:共4个帐户,共10个”, “2.您拥有:共11个账户,共23个”, “3.您拥有:共0个账户,共100个”, “4.您拥有:共2个账户,共6”] 常量reg=/(\d+)$/; dataList.s

按描述顺序对JavaScript中的列表记录进行排序

var数//这里我们从API中获取动态编号
var检验//这里我们从API获取动态文本

对于(var i;i您必须使用带有比较函数的
Array.prototype.sort

但我不完全理解你的代码

const dataList=[“1.您拥有:共4个帐户,共10个”,
“2.您拥有:共11个账户,共23个”,
“3.您拥有:共0个账户,共100个”,
“4.您拥有:共2个账户,共6”]
常量reg=/(\d+)$/;
dataList.sort((a,b)=>{
const avalue=reg.exec(a)[0]
const bvalue=reg.exec(b)[0]
返回+b值>+avalue
}).forEach(s=>document.write(s+“
”)
但是,您解决问题的方法仍然是错误的,您应该在输出之前对值进行排序

let dataList = ["teyuwdh 10", "hsdhcksj 100", "euwfhiuweic 1"];

dataList.sort(
    function(a, b) {return b.match(/\d+$/) - a.match(/\d+$/)}
);

console.log('dataList: ' + JSON.stringify(dataList));

输出:数据列表:[“hsdhcksj 100”、“teyuwdh 10”、“euwfhiuweic 1”]

谢谢Romain,但上面的链接无法帮助我解决问题。是否有其他方法对包含的字符串列表进行排序?可以。我知道您希望根据字符串中包含的数字进行排序。使用比较函数中的正则表达式提取数字并对这些值进行排序
var tmpArr = []
for (id in dataList) {
    tmpArr.push(dataList[id].split(' ').reverse())
}
tmpArr.sort((a,b) => (a[0] > b[0] ? 1 : -1))
dataList = []
for (id in tmpArr) {
    dataList.push(tmpArr[id].reverse().join(' '))
}
let dataList = ["teyuwdh 10", "hsdhcksj 100", "euwfhiuweic 1"];

dataList.sort(
    function(a, b) {return b.match(/\d+$/) - a.match(/\d+$/)}
);

console.log('dataList: ' + JSON.stringify(dataList));