Array.sortOn
3 отговора
0 прегледа
Array.sortOn
Имам следния масив myArray:
myArray[0]
name: John
score: 10
myArray[1]
name: Peter
score: 25
myArray[2]
name: Mike
score: 110
Използвайки myArray.sortOn("score", 2|16) се опитвам да подредя масива според стойностите на score в намаляващ ред, броени като числа, а не като стрингове.
Ето хелпа за тази функция, където е обяснено и значението на 2|16.
2-та (подреждане в намаляваш ред) си работи нормално - като я има, стойностите са в намаляващ ред, като я няма - в нарастващ.
Обаче 16-та не ще - и да я слагам, и да я махам, и Array.NUMERIC да слагам - все си ги подрежда като стрингове. Т.е. резултатът е такъв:
25
110
10
Флашът е публикуван като съвместим с версия 8, ActionScript 1.0, и функцията трябва да действа, ама не ще
Някакви идеи?
myArray[0]
name: John
score: 10
myArray[1]
name: Peter
score: 25
myArray[2]
name: Mike
score: 110
Използвайки myArray.sortOn("score", 2|16) се опитвам да подредя масива според стойностите на score в намаляващ ред, броени като числа, а не като стрингове.
Ето хелпа за тази функция, където е обяснено и значението на 2|16.
2-та (подреждане в намаляваш ред) си работи нормално - като я има, стойностите са в намаляващ ред, като я няма - в нарастващ.
Обаче 16-та не ще - и да я слагам, и да я махам, и Array.NUMERIC да слагам - все си ги подрежда като стрингове. Т.е. резултатът е такъв:
25
110
10
Флашът е публикуван като съвместим с версия 8, ActionScript 1.0, и функцията трябва да действа, ама не ще
Някакви идеи?
Re: Array.sortOn
не знам как вкарваш данните в array-а, но ако е по начина по който е тук, няма да ти върне това което искаш. пробвай с това както е на страницата им
my_array.push({password: "abcd", age:3});
my_array.push({password: "barb", age:35});
my_array.push({password: "catchy", age:4});
my_array.push({password: "abcd", age:3});
my_array.push({password: "barb", age:35});
my_array.push({password: "catchy", age:4});
Re: Array.sortOn
Ами начина е следния:
vars = new loadVars();
vars.onLoad = function {
тук пълня данните от vars в съответните полета на myArray
}
vars.load("file.txt");
Направих експеримент - ако задавам стойностите директно, т.е.:
myArray[0].score = 5;
myArray[1].score = 15;
myArray[2].score = 74;
myArray[3].score = 28;
тогава подреждането работи. Ама ако го пълня по горния начин - не ще.
Нямам идея защо така
vars = new loadVars();
vars.onLoad = function {
тук пълня данните от vars в съответните полета на myArray
}
vars.load("file.txt");
Направих експеримент - ако задавам стойностите директно, т.е.:
myArray[0].score = 5;
myArray[1].score = 15;
myArray[2].score = 74;
myArray[3].score = 28;
тогава подреждането работи. Ама ако го пълня по горния начин - не ще.
Нямам идея защо така
Re: Array.sortOn
Ако за някой ще е полезно - открих решението, но не и отговора
Проблемът се реши, като преди задаване на стойност на myArray.score, конвертирам тази стойност от string на number. Тогава подреждането работи.
Но пак не е ясно какъв е тогава смисълът на Array.NUMERIC, която би трябвало да подрежда string-ове не като текст, а като числа.
Както и да е - важното е, че този път работи. Ще видим за следващия проект...
Проблемът се реши, като преди задаване на стойност на myArray.score, конвертирам тази стойност от string на number. Тогава подреждането работи.
Но пак не е ясно какъв е тогава смисълът на Array.NUMERIC, която би трябвало да подрежда string-ове не като текст, а като числа.
Както и да е - важното е, че този път работи. Ще видим за следващия проект...