我想知道如何对具有数字或“x”值(未定义)的列进行排序。使用传统排序,结果不正确,17 比 7 早出现。
例子:
17
7
9
X
Run Code Online (Sandbox Code Playgroud)
想要将其排序为:
7
9
17
X
Run Code Online (Sandbox Code Playgroud)
附言。
我在用:
var data = new google.visualization.DataTable()
data.addRow[{v:'17'}, {v:'7'}, {v:'9'}, {v:'X'}]
Run Code Online (Sandbox Code Playgroud)
我希望能够在事件监听器中对其进行排序。
您可以在比较器函数中使用localeCompare该选项:{numeric:true}
let arr = ["17","7","9","X"];
function comparator(a,b) {
return a.localeCompare(b, "en", {numeric:true});
}
console.log(
arr.sort(comparator)
)Run Code Online (Sandbox Code Playgroud)
如果你的数组是这种格式
[{ v: '17' }, { v: 'X' }, { v: '7' }, { v: '9' }];
Run Code Online (Sandbox Code Playgroud)
您必须稍微调整比较器:
[{ v: '17' }, { v: 'X' }, { v: '7' }, { v: '9' }];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |