0
我将如何对以下数组进行排序,以便它首先按升序年份跨度和每年跨度应用排序,它首先按类型“简单”,然后“复杂”对它进行排序?我还需要数组中每个排序的开始索引和计数。所以在这种情况下。问题是数组可以是动态的,这意味着可以添加新的一年跨度。使用JQuery将对象数组按多个属性排序
var array = [
{"name":"one", "year":"2017-2018", "type":"simple"},
{"name":"two", "year":"2018-2019", "type":"complex"},
{"name":"three", "year":"2017-2018", "type":"complex"},
{"name":"four", "year":"2018-2019", "type":"complex"},
{"name":"five", "year":"2018-2019", "type":"simple"},
{"name":"six", "year":"2017-2018", "type":"simple"},
];
这里的输出是:
var array = [
{"name":"one", "year":"2017-2018", "type":"simple"},
{"name":"six", "year":"2017-2018", "type":"simple"},
{"name":"three", "year":"2017-2018", "type":"complex"},
{"name":"five", "year":"2018-2019", "type":"simple"},
{"name":"two", "year":"2018-2019", "type":"complex"},
{"name":"four", "year":"2018-2019", "type":"complex"},
];
//These need to be generated dynamically
startIndex2017simple = 0;
count2017simple = 2;
startIndex2017complex = 2;
count2017complex = 1;
startIndex2018simple = 3;
count2018simple = 1;
startIndex2018complex = 4;
count2018complex = 2;
我至今只设法通过简单或复杂的,但不是年的跨度进行排序。
这里是我当前的代码(打字稿和反应):
props.items.forEach((item, index) => {
if(item.type=== "simple")
sorted.unshift(item);
else
sorted.push(item);
});
this.simples = props.items.filter((item)=>{
return item.type === "simple"
});
this.complex= props.items.filter((item)=>{
return item.type !== "complex"
});
我得到startIndex和利用simples和复杂的阵列计算性能。
您能否请您显示您当前的排序逻辑。你只需要修改它,以便在'type'匹配的情况下按'year'排序。 –
我没有添加它,因为它太静态,我觉得这是一个完全错误的方法。抱歉 – LeonidasFett