x
Solved

# sorting a list of decimal numbers in a textarea

Posted on 2004-09-28
Medium Priority
264 Views
Hi!
I want to display a text area and have the user input a series of numbers of value less than one( ie .0129) When a button is pressed, a function will return the sorted list to the textarea. Can this be done? I know javascript has a sort() function that works on an array, but how do you get the lines of the text area into an array?
Thanks,
Annas
0
Question by:annas
• 2

LVL 12

Expert Comment

ID: 12168536
If you can get the user to separate the values using a delimiter string e.g. "," or " " then you can get them into an array like this:
var sNumbers = MyTextArea.value
var aNumbers = sNumbers.split(",")

Now you can sort your array. Be aware the the default compare function used by the sort method  will sort in alphabetical order, which works if all your numbers start with a  decimal point but not otherwise. E.g. 11 comes before 2 because "11" is before "2".
0

LVL 63

Accepted Solution

Zvonko earned 400 total points
ID: 12169688

<html>
<title>Q_21147659</title>
<script>
function sortArea(theBtn){
theArea = theBtn.form.userInput;
theArea.value = theArea.value.split("\r\n").sort(num).join("\n");
}
function num(a, b){
a*=1; b*=1;
if(a>b) return 1;
if(a<b) return -1;
return 0;
}
</script>
<body>
<form>
<textarea name="userInput" rows="20"" cols="80">
</textarea>
<input type=button value="Sort" onClick="sortArea(this)">
</form>
<body>
</html>

0

Author Comment

ID: 12172288
Thanks, Zvonko, your code worked perfectly!
Annas
0

LVL 63

Expert Comment

ID: 12172307
You are welcome.
0

## Featured Post

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.