如何在Javascript中排序项目类别
How to order the item categories in Javascript
我有20条记录
我想按Priority
字段订购这些记录。
Priority
字段具有3个值(High, Medium, Low
)
我想分别按顺序显示High, Medium, Low
记录中的记录。
以下是C#
版本--->我需要在javascript中执行此操作
`var groupedRecords = records.OrderByDescending(x => x.Priority == "High").ThenByDescending(x > x.Priority == "Medium").ThenByDescending(x > x.Priority == "Low")`
在Javascript中,
var csvRecords = priorities.split(',');
//现在我得到了混合订单的csv。我需要按顺序。也就是说,我想先获取所有高记录,然后获取中等记录,最后获取Low记录。
您可以查看以下简单代码:
var points = [{Name: "House",Priority :"High"}, {Name: "Travel",Priority :"Medium"}, {Name: "Children",Priority :"High"}, {Name: "Personal Loan",Priority :"Low"}, {Name: "Car",Priority :"Medium"}, {Name: "Shopping",Priority :"Low"}];
document.getElementById("demo").innerHTML = JSON.stringify(points);
function myFunction() {
var priorityArray = ["High", "Medium","Low"]
points.sort(function(a, b){
var firstPrio = priorityArray.indexOf( a.Priority) ;
var secPrio = priorityArray.indexOf(b.Priority)
return firstPrio -secPrio
});
document.getElementById("sortedArray").innerHTML = JSON.stringify(points);
}
<p>Click the button to sort the array.</p>
<button onclick="myFunction()">Sort it</button>
<br/><br/>
Original Array:
<p id="demo"></p>
Sorted Array:
<p id="sortedArray"></p>
我希望它能对你有所帮助。
使用常量排序的浓缩版本:
数据:
var data = [
{
name: 'Andy',
priority: 'High'
},
{
name: 'John',
priority: 'Low'
},
{
name: 'Tim',
priority: 'Medium'
},
{
name: 'Bob',
priority: 'Medium'
},
{
name: 'Lucas',
priority: 'Medium'
},
{
name: 'Mark',
priority: 'High'
},
{
name: 'Fred',
priority: 'Low'
}
];
代码:
var SORT_ASC = -1;
var SORT_DESC = 1;
function sort_by_priority ( order ) {
var prs = ['High', 'Medium', 'Low'];
data.sort(function ( a, b ) {
var x = prs.indexOf(a.priority);
var y = prs.indexOf(b.priority);
if ( x < y ) return -1 * order;
if ( x > y ) return 1 * order;
return 0;
});
}
测试:
sort_by_priority(SORT_DESC);
console.log(data);
试试这个:
Fiddle
代码
var data = [];
var priority = ["low", "medium", "high"];
function createData() {
for (var i = 0; i < 10; i++) {
var index = Math.floor((Math.random() * 10) % 3);
var p = priority[index];
data.push({
"index": i,
"Priority": p
});
}
}
function createLI() {
var ul = document.getElementsByTagName("ul")[0];
var li = "";
data.forEach(function(row) {
li += "<li> " + row.index + " : " + row.Priority + " </li>";
});
ul.innerHTML = li;
}
function sortList(sortOrder) {
var order = (sortOrder == 'desc') ? -1 : 1;
data.sort(function(a, b) {
var p1, p2;
priority.forEach(function(row, index) {
if (a.Priority == row)
p1 = index;
if (b.Priority == row)
p2 = index;
})
if (p1 < p2) return -1 * order;
if (p1 > p2) return 1 * order;
return 0;
});
createLI();
}
(function() {
createData();
createLI();
})()
li {
list-style-type: none;
padding: 5px;
border-bottom: 1px solid #ddd;
margin-left: -20px;
width: 100px;
}
<ul></ul>
<button onclick="sortList('asc')">Asc Sort</button>
<button onclick="sortList('desc')">Desc Sort</button>
尝试使用String.prototype.match()
和RegExp
val + "'.''w+(?=.*,)", "g"
来匹配val
后面跟着任何字符后面跟着任何字母数字字符;其中,val
是存储在Array.prototype.forEach()
内迭代的数组中的"High"
、"Medium"
或"Low"
,使用Array.prototype.concat()
来压平包含从"高"到"中"到"低"排序的输入文本的结果数组res
。使用res.push()
返回从"高"到"中"再到"低"的三个数组
var priorities = "High:1,Medium:2,Low:3,Low:4,Medium:5,High:6,Medium:7,"
+ "High:8,Low:9,Low:10,Medium:11,High:12,Low:13,Medium:14,"
+ "High:15,High:16,Low:17,Medium:18,Low:19,High:20";
var keys = ["High", "Medium", "Low"], res = [];
keys.forEach(function(val) {
res = res.concat(priorities.match(new RegExp(val + "'.''w+(?=.*,)", "g")))
});
document.body.innerHTML = JSON.stringify(res)
相关文章:
- 如何在智能表中按日期对项目进行排序
- 按不同项目对对象数组进行排序
- 在Javascript中,当使用array.prush方法向列表中添加项目时,如何对其进行排序
- 我在页面中使用的jQuery UI可排序项目;不起作用
- 如何在角度js的自动完成下拉列表中对项目列表(按字母顺序)进行排序
- Jquery UI可排序,自动移动项目
- 对选定的排序项目应用不同的颜色
- 获取项目的顺序 jQuery 可排序并设置它们的顺序
- 在可排序的JQuery UI列表中至少保留一个项目
- 可拖动和可排序项目编号在更改时更新
- 限制可放置jqueryui可排序项目的区域
- 如何对select2自动完成结果进行排序,只显示以第一个字母开头的项目
- 动态生成<选择>未显示已排序列表中的第一个项目
- List.js对很长的项目排序不正确
- 更新“项目”选项以进行排序
- 使用 jqueryui 的多个可排序列表 - 不希望项目在列表组之间混合
- 如何在可排序中查找值的项目 用javascript.
- 如何删除项目的可排序 JQuery
- 按字母顺序对项目进行排序
- Jquery UI 可排序和可删除 - 无法将项目从一个列表克隆到另一个列表