Question about function returning array data
var grossBrackets = new Array( '300', '400', '500', '600', '700', '800', '900', '1000' );
function bracketSort( itemToSort ) {
for( index = 0 ; index < grossBrackets.length ; index++ ) {
if ( itemToSort < grossBrackets[index] ) {
bracketData[index]++;
} else if ( itemToSort > grossBrackets[7] ) {
grossBrackets[7]++;
}
}
return bracketData;
}
This is my current code, and I basically want to sort the data into their proper brackets. My source code is really long, but when I input these numbers into the function:
200.18
200.27
200.36
200.45
200.54
bracketData prints 5,5,5,5,5,5,5,5
or is there a better way to do this?
Brackets: <300, <400, <500, <600, <700, <800, <900, <10开发者_运维知识库00, greater than 1000
If you only want each item to be placed in one bracket, you need to end your loop over grossBrackets
once you've found a match. You can do this with the break
keyword, like so:
if ( itemToSort < grossBrackets[index] ) {
bracketData[index]++;
break;
}
Incidentally, you're checking whether itemToSort
is greater than grossBrackets[7]
8 times, one for each element in grossBrackets
. You really only need to do this once, so it doesn't need to be in the loop.
精彩评论