我有一個字符串!字符串中的訂單元素
- 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