У меня есть строка!Элементы заказа из строки
- 7 змеями
- 4 велосипеды
- 2 манго
Это из числа + [пробел] + вещь струнами. Мне нужно иметь возможность упорядочить всю строку со ссылкой на номер. Поэтому он должен выйти:
- 2 манго
- 4 велосипедов
- 7 змеями
Это простая пузырьковая сортировка по количеству, а затем перекрестные ссылки индекса, чтобы получить окончательный заказ , Ниже приведен код JavaScript ниже, но я не могу не думать, что его можно было бы сделать более эффективным. Я пропустил трюк здесь?
И помните: я художник, поэтому я код в карандаше!
var eventsStr = "7 serpents\n4 bikes\n2 mangoes"
var splitArr = eventsStr.split("\n")
var numArray = new Array();
var events = new Array();
for (var i = 0; i < splitArr.length; i++)
{
var temp = splitArr[i] ;
var part1 = temp.substring(0, temp.indexOf(" "))
var part2 = temp.substring(temp.indexOf(" ")+1, temp.length)
numArray[i] = part1;
events[i] = part2;
}
var sorted = superCopy(numArray);
var sorted = sorted.sort(sortArrayNumerically);
alert(getOrder(sorted, numArray, events))
function getOrder(orderedarr, arr1, arr2)
{
var str = "";
for (var i = 0; i < arr1.length; i++)
{
for (var j = 0; j < orderedarr.length; j++)
{
if (arr1[i] == orderedarr[j])
{
// found the thing !what is the event?
str += arr1[i] + " " + arr2[i] + "\n";
}
}
}
return str
}
function sortArrayNumerically(a,b)
{
return a - b;
}
function superCopy(arr)
{
tempArr = new Array();
for (var i = 0; i < arr.length; i++)
{
tempArr[i] = arr[i]
}
return tempArr
}
Это лучше подходит для http://codereview.stackexchange.com/ – Andy