2016-10-16 2 views
2

Принесите меня, я по-прежнему новичок в javascript. Я пытаюсь отсортировать список кодов save-game, которые будут отсортированы по их первому анализу элемента.Javascript: Сортировка по первым символам массива

var vList =["1|846|Doc|2|0|false|", "11|203|Derik|7|3|false|", "21|670|Mike|5|5|true|", "13|11|Ron|0|0|false|", "9|1000|Blood|9|9|true|"]; 
var vParse; 
for (i = 0; i < (vParse.length); i++) 
    var vParse[i]= vList.split('|'); 

// then somehow sort all the data based on vParse[0]? 

Я попробовал несколько сортировочного представления от других людей, но я не мог заставить его игнорировать все шрифт после первого разбора. Может ли кто-нибудь помочь мне, пожалуйста?

+0

Вы просто хотите, чтобы отсортировать массив на основе первого числа до трубы? – adeneo

+0

@adeneo Да, это правильно – TheBloodSeeker005

ответ

2

Вы можете использовать Array.sort и просто разделить на трубе, получить первый элемент, а при вычитании строки преобразуются в числа в любом случае

var vList =["1|846|Doc|2|0|false|", "11|203|Derik|7|3|false|", "21|670|Mike|5|5|true|", "13|11|Ron|0|0|false|", "9|1000|Blood|9|9|true|"]; 
 

 
vList.sort(function(a,b) { 
 
    return a.split('|')[0] - b.split('|')[0]; 
 
}); 
 

 
console.log(vList)

+0

Это сработало, спасибо кучу! – TheBloodSeeker005

1

Попробуйте некоторые так:

vList.sort(function(a, b) { 
    return parseInt(a.split('|')[ 0 ]) - parseInt(b.split('|')[ 0 ]); 
}); 

Вы можете узнать больше о sort, split и parseInt методов.

+0

Из-за принуждения типа javascript, в этом случае '-' на строках, parseInt не требуется. – Keith

+0

@Keith, конечно, я просто подумал, что метод parseInt более очевиден для начинающих – Legotin

1

Как об этом

vList.map(function(el){return {sortBy : parseInt(el.split('|')[0]), original : el}}).sort(function(a,b){return a.sortBy - b.sortBy}).map(function(el){return el.original}) 
Смежные вопросы