在一种情况下,我需要按索引号的升序显示数据。
myArray = [
{custom_carousel: false, default_label: "SmartCards", index: 3, visible: true},
{custom_carousel: false, default_label: "Pathways", index: 2, visible: false},
{custom_carousel: false, default_label: "Pathways", index: 1, visible: false},
{custom_carousel: false, default_label: "Pathways", index: 0, visible: false}
]
我应该先对数组进行排序还是在有条件的情况下添加?
if(index === 0){
}else if (index === 1){
}else if (index === 2){
}else if (index === 3){
}
答案 0 :(得分:2)
您可以基于sort
值使用index
方法:
myArray = [
{custom_carousel: false, default_label: "Pathways", index: 2, visible: false},
{custom_carousel: false, default_label: "SmartCards", index: 3, visible: true},
{custom_carousel: false, default_label: "Pathways", index: 1, visible: false},
{custom_carousel: false, default_label: "Pathways", index: 0, visible: false}
]
console.log(myArray.sort((a,b)=>a.index - b.index));
答案 1 :(得分:2)
myArray.sort(function(a, b){return a.index - b.index});
将按索引对数组进行排序
答案 2 :(得分:1)
我建议事先对数组进行排序,然后按数组的索引进行访问。
原因
var myArray = [{ custom_carousel: false, default_label: "SmartCards", index: 3, visible: true }, { custom_carousel: false, default_label: "Pathways", index: 2, visible: false }, { custom_carousel: false, default_label: "Pathways", index: 1, visible: false }, { custom_carousel: false, default_label: "Pathways", index: 0, visible: false }]
myArray.sort(({ index: a }, { index: b }) => a - b);
console.log(myArray);
答案 3 :(得分:1)
排序将花费O(n + log(n))时间,而if-else-if-else将花费O(n 2 )时间。因此排序是更好的选择。