|
Работа с массивом
Это элементарно все навернека знают но просьба мне объяснить.
Массив обладает свойством length - который определяет длину массива, а вот как определить количество элементов в массиве. Ну к примеру: var massive= new Array(); massive[1]="слово1"; massive[3]="слово2"; massive[5]="слово3"; var f=massive.length; Так вот переменая f , будет равна значению 6; А как можно получить количество элементов. В масиве их 3.:-? |
var massive= new Array(); massive[1]="слово1"; massive[3]="слово2"; massive[5]="слово3"; for(var k in massive ) { if ( ~~k == k ) { alert( massive[ k ] ); } } |
а вот разьеснить можешь, что делает
к, перезаписываеться в массив за место всех ключей и к стати ~~ для чего они.:-? |
да и еще код мне просто выводит пошагово мои значения через ключ, а мне нужно получить переменную которая будет содержать сумму всех элементов массива. В данном коде к примеру
$l=3; |
да и еще код мне просто выводит пошагово мои значения через ключ, а мне нужно получить переменную которая будет содержать сумму всех элементов массива. В данном коде к примеру $l=3
|
Ну а что вы хотели, вы создаете массив из шести элементов.. и при этом хотите получить только реальные, тоесть назначенные... И конечно же получить/подсчитать их можно только перебором.
var massive= new Array(); massive[1]="слово1"; massive[3]="слово2"; massive[5]="слово3"; var length = 0; for(var k in massive ) { ~~k == k && ++length; } alert(length); |
О спасибо начинаю понимать, простите за наглость а не найдете свободную минутку ражевать мне ваш цикл, в учебник написано:
Итерация по свойствам объекта. А вот я не совсем понял как работает ваш цикл, и для чего нужны ~~ , &&- Логическое "И"- Возвращает последний операнд, если все операнды верны. Если хоть один из операндов неверен, то возвратит первый неверный операнд. Дальше немножко понятно тоже: lengthэто обычная переменая которая перед циклом равнялось 0, а в цикле она каждый раз пребовляет по единицы сколько циклов столько и прибовлений блогадоря: + +так как это тоже самое что +1; А вот принцип работы ~~k == kне могу понять. |
~ это битовая операция
alert( ~1 ); // меняет биты 0 на 1, а единицы на ноль тоесть если смотреть в двоичной системе: 00000001 - в десятичной рано 1 после манипуляции через знак ~ будет: 11111110 - тоесть 254 или -1 в нашем случае строку переводим в число: ~~"1" == 1 |
ага понятно, не знал что так можно, а если воспользоваться методом
parseIntну вроде как: var length = 0; for(var k in massive ) { parseInt(k) == k && ++length; } alert(length);Или не правильно. |
devote,
Цитата:
|
Часовой пояс GMT +3, время: 05:13. |
|