Javascript.RU

Array

Создание

/* обычный синтаксис */
var array = [ elem0, elem1, elem2, ... ]
var empty = []

/* Синтаксис с new Array() */
var array = new Array( elem0, elem1, elem2, ...)
var empty = new Array()

/* Редкий синтаксис: аргумент new Array - одно число.
При этом создается массив заданной длины, 
все значения в котором undefined */
var array = new Array(10)

Аргументы

elem0, elem1, ...
  • Если ни один из параметров elem0, elem1, ... не указан, то инициализируется пустой массив.
  • Если указан лишь один числовой параметр elem0 и массив объявлен через new Array, то будет инициализирован пустой массив длины, равной данному числу. При этом все элементы являются undefined.
  • В ином случае создается массив из перечисленных элементов.

Массив пронумерованных элементов, также может служить стеком или очередью. Для ассоциативных массивов используйте Object.


Описание, примеры

Объект Array предоставляет функционал

  1. Массива с любыми числовыми индексами (разреженного)
  2. Стека/очереди

Для задания массива, как правило, используется синтаксис с квадратными скобками. Объявление через new Array тоже возможно, но почти не используется.

Пример: Создать пустой массив
var arr = []
Пример: добавить элемент в конец
arr[arr.length] = 5  /* или arr.push(5) */
Пример: Создать массив из разных элементов
var arr = [ 4, "test", , false, [0,1] ]

alert(arr[1]) // => "test"
alert(arr[2]) // => undefined
alert(arr[3]) // => false
alert(arr[4][1]) // => 1

Можно добавить объект под любым индексом, даже превосходящим текущую длину массива. При этом массив хранит (и потребляет память) только те элементы, которые установлены.

В примере ниже массив будет хранить два элемента: номер 1 и номер 999.

Пример: разреженный массив
var arr = []
arr[1] = 5
arr[999] = 6

alert(arr[0]) // => undefined, такого значения нет
alert(arr.length) // => 1000 : последний индекс+1

Ассоциативные массивы

Класс Array рекомендуется использовать только для массивов с числовыми индексами.

Для ассоциативных массивов в javascript применяется Object.

Многомерные массивы

Для многомерных массивов в javascript нет кросс-браузерного синтаксиса.

Обычно используется массив массивов, например:

// 3 в ширину 3 в высоту
// каждый подмассив - колонка
var matrix = [ [1,2,3], [4,5,6], [7,8,9] ]

alert(matrix[1][1])  // 5

Методы

push
shift
join
concat
pop
unshift
slice
reverse
sort
splice

Свойства

index
input
length

См. также


Автор: Гость (не зарегистрирован), дата: 1 марта, 2010 - 22:02
#permalink

Или что-нибудь похожее на record есть?


Автор: Илья Кантор, дата: 22 марта, 2010 - 14:42
#permalink

Да, Object


Автор: Гость (не зарегистрирован), дата: 12 сентября, 2017 - 14:56
#permalink

синтаксис похож на с++


Автор: гость (не зарегистрирован), дата: 8 декабря, 2023 - 23:40
#permalink

спасибо за то что показали все на оной странице


Автор: вебдев (не зарегистрирован), дата: 14 апреля, 2010 - 20:30
#permalink

Автор, подскажи как преоброзовать массив в строку, а затем обратно из строки получить массив. Чтобы не использовать JSON .


Автор: Гость (не зарегистрирован), дата: 23 июля, 2010 - 11:51
#permalink

см. join и split


Автор: Гость (не зарегистрирован), дата: 9 августа, 2015 - 15:19
#permalink

Я не очень понимаю, что такое JSON Array? JSON насколько мне известно это формат записи объектов. Ну и Array тоже можно создать так же типа

var ar = [el1,el2,el3,el4,...]

Однако после создания никакого JSON у нас нету! Есть только объект Array со всеми его свойствами... О каком таком JSON Array идёт речь? Может это тип, который я не знаю?


Автор: Гость (не зарегистрирован), дата: 15 февраля, 2024 - 10:10
#permalink

Для преобразования массива в строку без использования JSON, вы можете воспользоваться методом join() для преобразования массива в строку, а затем использовать метод split() time calculator для преобразования строки обратно в массив.

Пример:

javascript
Sao chép
// Преобразование массива в строку
var arr = [1, 2, 3, 4, 5];
var str = arr.join(',');

// Преобразование строки обратно в массив
var newArr = str.split(',');
Метод join() объединяет элементы массива с помощью указанного разделителя (в данном случае, запятой), а метод split() разбивает строку на подстроки по указанному разделителю и возвращает новый массив.


Автор: Гость (не зарегистрирован), дата: 16 апреля, 2010 - 16:38
#permalink

А как просто без затей пройтись по json массиву? Вот сформировал я и получил его. Есть он у меня в переменной. Как перебрать элементы?


Автор: B@rmaley.e><e, дата: 16 апреля, 2010 - 17:39
#permalink

Так же, как и по обычному массиву.
for(var i = 0; i < arr.length; i++) alert(arr[i]);


Автор: Гость (не зарегистрирован), дата: 7 декабря, 2010 - 07:34
#permalink

for(var i = 0; i < arr.length; i++) alert(arr[i]);
Этот вариант не сработает, а точнее сработает, но не так как надо, в следующем случае:
var arr = []
arr[1] = 5
arr[999] = 6

В подобных случаях можно сделать так:
for(var i in arr) alert(arr[i]);


Автор: B@rmaley.e><e, дата: 7 декабря, 2010 - 09:33
#permalink

Можно, только и у него свои недостатки.

Array.prototype.IS_ARRAY = true;
var arr = [];
arr[1] = 3;
arr[93] = 5;
for(var key in arr) alert(key + ': ' + arr[key]);

Автор: djembuka, дата: 5 марта, 2011 - 13:59
#permalink

Кроме того, в IE ключ перебирается, начиная с последней позиции, а не с первой, как в остальных браузерах.


Автор: inst, дата: 24 января, 2012 - 11:57
#permalink

hasOwnProperty же.


Автор: B@rmaley.e><e, дата: 7 декабря, 2010 - 09:42
#permalink

Упс, пост дважды запостился.


Автор: Гость (не зарегистрирован), дата: 9 августа, 2015 - 15:23
#permalink

Ну кто же такие идиотские массивы пишет! Пишите нормально по человечески и не придётся извращаться! Я бы вообще выкинул это... Хочешь так используй ассоциативные массивы! Зачем использовать, то что изначально сделано чтобы всё шло по порядку без пропусков сознательно вводя пропуски? И зачем такую возможность давать, непонятно!!!


Автор: Гость (не зарегистрирован), дата: 22 апреля, 2010 - 09:31
#permalink

есть какой либо метод для проверки существования элемента массива с заданным значением?


Автор: Гость (не зарегистрирован), дата: 5 мая, 2010 - 14:18
#permalink
if (typeof myarray[1] == 'undefined') alert('заданного элемента в массиве не существует');

Автор: Гость (не зарегистрирован), дата: 23 декабря, 2010 - 02:34
#permalink

Я так понял спросили не проверку существования элемента с заданным КЛЮЧОМ а проверку наличия заданного ЗНАЧЕНИЯ, т.е. что то подобное in_array() из PHP. Меня тож интерисует этот вопрос


Автор: Гость (не зарегистрирован), дата: 5 августа, 2011 - 12:37
#permalink

Есть такая функция, но не поддерживается неким семейством браузеров, поэтому надо написать свою. Например:

Array.prototype.in_array = function(_value){
for(var i = 0, l = this.length; i < l; i++) if (this[i] == _value) return i;
return undefined;
}

var a = ["This","is","array"];
a.in_array("is");//=>1
a.in_array("not");//=>undefined


Автор: Гость (не зарегистрирован), дата: 9 августа, 2015 - 15:41
#permalink

А вот это хорошая мысль... Правда у Array появился метод IndexOf типа как у строки и кстати второй lastIndexOf тоже. Но не уверен что в моём JavaScript он есть.Если нет, то добавлю ваш код. Надеюсь он работает...


Автор: inst, дата: 24 января, 2012 - 11:59
#permalink

Автор: Гость (не зарегистрирован), дата: 5 июня, 2010 - 10:19
#permalink

как преобразовать js массив в строку формата json ???


Автор: B@rmaley.e><e, дата: 5 июня, 2010 - 14:17
#permalink
alert(JSON.stringify([1,2,3, 'text']))

Только учтите, что нативная работа с JSON еще не очень кроссбраузерна.


Автор: Гость (не зарегистрирован), дата: 6 июня, 2010 - 00:36
#permalink

так и не нашёл способа сделать это с массивом, зато нашёл способ сделать это с объектом, так что в принципе моя проблема решена! http://code.google.com/p/jquery-json/


Автор: 9IP (не зарегистрирован), дата: 24 октября, 2010 - 09:32
#permalink

а почему у меня обявление через new Array не сработало? может это ошибка браузера? синтаксис был верен...


Автор: B@rmaley.e><e, дата: 24 октября, 2010 - 10:01
#permalink

Сколько аргументов Вы передавали? Если один, то он посчитался за длину массива.


Автор: Гость (не зарегистрирован), дата: 9 ноября, 2010 - 18:16
#permalink

как задать массив состоящий из элементов P1, P2,.......Pn, не вписывая все n (большое число) элементов в описание массива, и потом использовать эти элементы как переменные?
либо как задать сразу много переменных P1, P2, .........Pn

заранее спасибо.


Автор: B@rmaley.e><e, дата: 9 ноября, 2010 - 21:27
#permalink

А значения откуда брать? Если вы сможете сгенерировать i-ое значение по индексу, то достаточно организовать цикл вида

var arr = [], fnc = function(i){return i * i};
for(var i = 0; i < 1000; ++i) arr.push(fnc(i));
alert('Квадраты всех неотрицательных чисел, меньших 1000:\n' + arr.join(', '));

Автор: ramon (не зарегистрирован), дата: 24 ноября, 2010 - 18:41
#permalink

Запрашиваю элемент массива с другой страницы.
Т.е. он в определенное поле должен вставить значение данного массива, но вместо имени элемента он вставляет мне его индекс.
Подскажите, каким атрибутом можно уточнить мой запрос?


Автор: Гость (не зарегистрирован), дата: 18 декабря, 2010 - 03:58
#permalink

как задать тип данных всем элементам массива?


Автор: Гость (не зарегистрирован), дата: 9 марта, 2011 - 17:45
#permalink

В JS типы данных не задаются.


Автор: гост (не зарегистрирован), дата: 14 января, 2011 - 10:40
#permalink

Подскажите пожалуйста, а если у меня есть строка в ней 16 нулей, как из неё сделать массив из 16 элементов?


Автор: гост (не зарегистрирован), дата: 14 января, 2011 - 10:40
#permalink

Подскажите пожалуйста, а если у меня есть строка в ней 16 нулей, как из неё сделать массив из 16 элементов?


Автор: Гость (не зарегистрирован), дата: 9 марта, 2011 - 17:51
#permalink

var ar = "0000".split("")//массив из String-ов
for(var i = 0, l = ar.length; i < l; i++){
ar[i] = parseInt(ar[i], 10)//меняем на Number, если это подразумевалось
}


Автор: Гость (не зарегистрирован), дата: 20 мая, 2011 - 13:16
#permalink

var ar = "987654".match(/./g);


Автор: Гость (не зарегистрирован), дата: 10 марта, 2011 - 20:40
#permalink

Автор, подскажите, как сделать так, чтробы элементы массива можно было задавать в текстовом окне пользователем?


Автор: Marwell, дата: 1 мая, 2011 - 17:55
#permalink

Как сделать, чтобы в массив входили данные из нескольких символов?
У меня почемуто:

var e=[]
var e=(prompt ('введите массив чисел через запятую')) //1, 2, 3, 4
alert (e[0]) //1
alert (e[1]) //,
alert (e[2]) //
alert (e[3]) //2
alert (e[4]) //,
alert (e[5]) //
alert (e[6]) //3


Автор: B@rmaley.e><e, дата: 1 мая, 2011 - 23:38
#permalink

То, что Вы записали в e массив еще не означает, что он всегда им будет. Скажу по секрету, JS - язык с динамической типизацией, а prompt возвращает строку. Ту самую, которую ввел пользователь, со всеми запятыми, пробелами и цифрами. Применение оператора индексирования к строке - не более, чем получение соответствующего символа из строки.
Чтобы разбить строку на массивы по некоторому разделителю, используйте метод split:

var e = '1, 2, 3, 4'; // строка
var a = e.split(', '); // массив
alert(e + '\n' + a);

Автор: bobo (не зарегистрирован), дата: 10 августа, 2011 - 16:21
#permalink

узнай интересный способ преобразования массива в строку, где элементы массива будут идти через запятую
var arr = [1,2,3];
alert(''+arr);


Автор: Increazon, дата: 13 августа, 2011 - 15:04
#permalink

Фуфло этот джаваскрипт. С какого ему не нравится

array[] = 4;

Автор: B@rmaley.e><e, дата: 14 августа, 2011 - 11:39
#permalink

С такого, что это ни разу не по стандарту.
Если в php так можно, это ещё не значит, что оно должно работать везде.


Автор: zw0rk (не зарегистрирован), дата: 16 августа, 2011 - 12:28
#permalink

В хроме как минимум, new Array(items_count) не работает:

> new Array(5)
[]


Автор: melky, дата: 16 августа, 2011 - 19:39
#permalink
a =  [undefined,undefined,undefined];
b = new Array( 3 );

alert( [a,b].join('\n') );

Автор: B@rmaley.e><e, дата: 17 августа, 2011 - 16:39
#permalink

Что значит "не работает"?

alert(new Array(500).length)

Автор: maksimr (не зарегистрирован), дата: 1 сентября, 2011 - 12:56
#permalink

У меня такой вопрос почему:

var foo = function(){ return 1; };
1 == foo; // почему возврашает false

x == y
1) x - Number, y - object
2) x == toPrimitive(y);
toPrimitive -> входной аргумент y - type object
для Object:
Возвращает значение по умолчанию для объекта. Значение по умолчанию для объекта получается путём вызова для объекта внутреннего метода [[DefaultValue]] с передачей ему опциональной подсказки ПредпочтительныйТип. Поведение метода [[DefaultValue]] определяется данной спецификацией для всех встроенных объектов ECMAScript (8.6.2.6).

подсказка будет Number (скорее всего).

Дальше должны следовать такие шаги

Когда метод [[DefaultValue]] объекта O вызывается с подсказкой типа Number, предпринимаются следующие шаги:

1. Вызвать метод [[Get]] объекта O, передав в качестве аргумента "valueOf".
(тут он возвращает объект функцию [сам себя])

2. Если Результат(1) не является объектом - переход на шаг 5.

3. Вызвать метод [[Call]] у Результата(1), передав ему O в качестве значения this и пустой список аргументов.
(вот этот шаг я так понимаю мы можем промоделировать как: foo.call(foo) и он должен вернуть примитивное значение 1)

4. Если Результат(3) является элементарным значением - вернуть Результат(3).

Тогда вопрос почему же false а не true?

Заранее Спасибо!


Автор: VBKesha, дата: 15 октября, 2012 - 15:05
#permalink

потому что foo это функция, и сравнивать её со значением 1 мы естественно получим false а вот 1 == foo() совсем другое дело.


Автор: Гость (не зарегистрирован), дата: 10 октября, 2011 - 12:39
#permalink

Как посчитать стоимость товаров?Спасибо
var Tovar = ["Ruchka", "Karandash", "Linejka"];

var Zena = ["5", "3", "2"] ;

var Kol = [100, 400, 200] ;


Автор: Гость (не зарегистрирован), дата: 31 октября, 2011 - 11:44
#permalink

var Tovar = ["Ruchka", "Karandash", "Linejka"];
var Zena = ["5", "3", "2"];
var Kol = [100, 400, 200];
var Stoim = [];
for (var i = 0; i < Tovar.length; i++)
{
Stoim[i] = Zena[i] * Kol[i];
document.write(Stoim[i] + "");
}


Автор: Гость (не зарегистрирован), дата: 31 октября, 2011 - 11:48
#permalink

в последней строчке:
document.write(Stoim[i] + "");
Это чтобы посмотреть результат, можно без него.


Автор: Гость (не зарегистрирован), дата: 28 ноября, 2011 - 18:37
#permalink

Здравствуйте! Такая ситуация: Пользователь кликает по странице, после каждого клика появляется квадратик в месте клика. Их может быть столько сколько хочет пользователь. Каждый квадратик элемент массива. как определить индекс, чтобы пользователь мог удалить любой квадратик, щелкнув по нему мышкой.
Заранее спасибо!


Автор: Questioner, дата: 26 февраля, 2012 - 14:07
#permalink
<script>
window.onclick = function(e) {
 var a = document.createElement("div");
 a.style.position = "absolute";
 a.style.left = e.pageX || e.clientX + document.documentElement.scroolLeft + "px";
 a.style.top = e.pageY || e.clientY + document.documentElement.scroolTop + "px";
 a.style.height = "20px";
 a.style.width = "20px";
 a.style.backgroundColor = "#000"
 a.onclick = function(e) {
  if(e.target.style.backgroundColor == "rgb(0, 0, 0)") {
   e.target.style.backgroundColor = "#888";
   e.target.innerHTML = "?";
  } else {
  document.body.removeChild(e.target);
  }
  e.cancelBubble = true;
 }
 document.body.appendChild(a);
}
</script>
<body>
</body>

Автор: Гостья (не зарегистрирован), дата: 29 июня, 2013 - 17:15
#permalink

А у меня почему то в браузере такое не получается......несколько раз скопипастил и нажимая по полю хрома квадрат появляется в верхнем левом углу


Автор: Гость (не зарегистрирован), дата: 4 января, 2012 - 09:02
#permalink

Есть следующая проблема - получаю данные ajax-запросом. Вывести объект data удаётся без проблем (alert, document.write), но как только пытаюсь присвоить его значение элементу массива - выдаётся ошибка:
array1[0][0]=data; - "Uncaught TypeError: cannot set property '4' of undefined"
пробовал и по другому делать:
array1[0][0]=data(); - "Uncaught TypeError: string is not a function"
Как "победить" присвоение и присвоить текст элементу массива?


Автор: Gigo, дата: 27 января, 2012 - 14:56
#permalink

Есть переменные x="Kolya" y=14
надо обьявить переменную Kolya14 и присвоить чего нить
как пример получиться что то вроде
var Kolya14 = "чего нить";


Автор: Questioner, дата: 28 марта, 2012 - 14:56
#permalink
var x = "a", y = "b";
eval("var " + x + y + "= \"ANYTHING\"");
alert(ab);

Автор: Дим Лис (не зарегистрирован), дата: 29 января, 2012 - 21:49
#permalink

Зачем нужен способ задания

var a = new Array(2);

если все остальные элементы этого массива так же можно использовать, не взирая на заданную длину?
Например:

a[10]=12;
console.log(a[10]); //выдаст 12, без всяких помех

Автор: termi_uc, дата: 30 января, 2012 - 22:58
#permalink

if(!String.prototype.repeat)String.prototype.repeat = function(count) {
return new Array(count).join(this + "");
}


Автор: alexeyserd (не зарегистрирован), дата: 3 февраля, 2012 - 18:56
#permalink

как отсортировать массив1 из массива2 чисел в порядке возрастания значений чисел. но чтобы сортировка происходила по первому элементу массива2 ?

for(var dj=0; dj<time_array.length; dj++) {
for(var da=0; da<time_array.length; da++) {
if(time_array[dj][0]<time_array[da][0]) {var temp1=time_array[dj]; var temp2=time_array[(da-1)];
time_array[(da-1)]=temp1; time_array[dj]=temp2;
}
}
}

в чем ошибка?


Автор: Гость (не зарегистрирован), дата: 17 февраля, 2012 - 05:44
#permalink

facepalm.jpg


Автор: Questioner, дата: 28 марта, 2012 - 15:01
#permalink
alert([] == []); // false
alert([] != []); // true
var a = [];
alert(a == a); // true
alert(a == []); // false
alert(a == new Array()); // false
var b = [];
alert(a == b); //  false

Почему?


Автор: Гость (не зарегистрирован), дата: 1 мая, 2012 - 09:47
#permalink

потому что сравниваются ссылки на массивы, а не массивы.

a==a - потому что ссылка одна и та же,
a!=[] - потому что ссылки разные.


Автор: Гость (не зарегистрирован), дата: 16 июля, 2012 - 15:18
#permalink

а если у меня объявлены переменные

var a=2;
var b=3;

как мне их внести в массив?

var m=new Array(a, b); ????


Автор: Дзен-трансгуманист, дата: 17 июля, 2012 - 12:27
#permalink

Можно и через new, но обычным синтаксисом будет лаконичнее:
var m = [a, b];


Автор: гость Денис (не зарегистрирован), дата: 27 августа, 2012 - 14:43
#permalink

ребята! Здравствуйте! Мучаюсь я тут с одной проблемой, не могу победить. Может Вы что нибудь подскажите?

В общем то есть надобность передать посредством php массив, да так чтобы при загрузке страницы по клику в checkBoxe javascript пошел и забрал этот массив. С этим проблем нет

<?
$phpArray = array(1,2,3,4,10,20,30)
?>

.....конец php, начало js

.....
var checkBoxes = document.getElementsByTagName('input');
jsArray = checkBoxes.value;
//проблемы начинаются тут - переменная считывается, но как с массивом я с ней работать не могу(так чтобы запросив jsArray[2] получить 3. вместо этого получаю undefined), хотя запрашивая просто jsArray получаю все содержимое через запятую????? Что делать?

..... конец js, начало html

<input name="data" id="check"  onclick="checkBox()" value="<?php echo join(",", $phpArray); ?>" type="checkbox">

Автор: Гость Денис (не зарегистрирован), дата: 28 августа, 2012 - 08:15
#permalink

кстати! при запросе -

jsArray[0] //дает все содержимое через запятую! как преобразовать так чтобы был полноценный массив?

Автор: Гость Денис (не зарегистрирован), дата: 28 августа, 2012 - 08:56
#permalink

разобрался с одномерным массивом! Все работает! Не работает с многомерным Sad


Автор: Гость (не зарегистрирован), дата: 31 августа, 2012 - 17:45
#permalink

не получается создать ассоциативный массив в цикле (используя выборку из тегов).

Пишу следующее:

<div id="slide0" class="slide-data-class">

   <p class="title">Title0</p>
   <p class="image">Image0</p>
   <p class="url">Url0</p>

</div>


<div id="slide1" class="slide-data-class">

   <p class="title">Title1</p>
   <p class="image">Image1</p>
   <p class="url">Url1</p>

</div>
$(document).ready(function(){

	var n=2;
	var slideData = {};
	for (i=0; i<n; i++){
		var titleVar = $('#slide' + i + ' p.title').html(),
			imageVar = $('#slide' + i + ' p.image').html(),
			urlVar = $('#slide' + i + ' p.url').html();
				
		slideData[i]['title'] = titleVar;
		slideData[i]['image'] = imageVar;
		slideData[i]['url'] = urlVar;
}

Значение переменных из выборки - правильное, а вот с массивом проблема - он пустой. Подскажите, что пишу не так.

Спасибо.


Автор: Дзен-трансгуманист, дата: 1 сентября, 2012 - 01:55
#permalink

Индекс верхнего уровня в вашем случае должен быть простым массивом, а не ассоциативным. Попробуйте так:

$(document).ready(function(){

  var n = 2;
  var slideData = [];

  for (i=0; i<n; i++) {

    var titleVar = $('#slide' + i + ' p.title').html(),
        imageVar = $('#slide' + i + ' p.image').html(),
        urlVar = $('#slide' + i + ' p.url').html();

    slideData[i] = {};
    slideData[i]['title'] = titleVar;
    slideData[i]['image'] = imageVar;
    slideData[i]['url'] = urlVar;
  }
});

И, возможно, объявление slideData следует вынести во внешний контекст, если вы планируете обращаться к этому массиву и в дальнейшем, после отработки данной функции.


Автор: NisSAM (не зарегистрирован), дата: 5 сентября, 2012 - 13:51
#permalink

09 /* Редкий синтаксис: аргумент new Array - одно число.
10 При этом создается массив заданной длины,
11 все значения в котором undefined */
12 var array = new Array(10)

Если я правильно понял, то это вариант дает тот же результат что и

var array=[]; array.length=10;

При этом массив пустой, т. е. вообще не имеет значений. А это не то же самое, что массив со всеми элементами undefined.


Автор: DrLenux (не зарегистрирован), дата: 21 сентября, 2012 - 08:41
#permalink

пишу проверку данных на js, но происходит ошибка кто может её объяснить

var user=document.getElementById("user");
var pass1=document.getElementById("pass1");
var pass2=document.getElementById("pass2");
var err1=document.getElementById("err1");
var err2=document.getElementById("err2");
var err3=document.getElementById("err3");
var p=/^[a-z0-9]$/i;
var q=[0,1,2];

function key1() {
if (!p.test(user)) { q[1]=0; } else {q[1]=1;}
}

_______________________________________________________


Автор: Гость (не зарегистрирован), дата: 5 октября, 2012 - 22:16
#permalink

Подскажите, пожалуйста, как вывести значения многомерного масcива в div:

var td = new Array();
var pib = td[0] = new Array();
var tel = td[1] = new Array();//и т.д//
function s(){
for (var i=0; i<=td.length; i++){ ?}
}


Автор: Гость (не зарегистрирован), дата: 24 октября, 2012 - 17:57
#permalink

А вот подскажите как лучше сделать:
Например есть массив и переменная с прилетевшем значением.

var arr = [0, 5, 12];
var eer = $('#ship :selected').val();

Есть выпадающий список select. При выборе из списка option то его value летит в JS и загоняется в err. Вопрос.
Как сделать сравнение перелетевшего значение в err с arr? То есть как с 1го раза проверить а совпадает ли перелетевшее значение с цифрами из массива или нет? Если нет то выдаем определенное сообщение. если совпадает то ничего не делаем и просто идем мимо.
например:

if (err != arr[]) {ok = confirm('Сообщение')};

Автор: Гость (не зарегистрирован), дата: 3 ноября, 2012 - 12:38
#permalink

Как стилизовать масив?


Автор: Незарегистрированный (не зарегистрирован), дата: 26 августа, 2013 - 18:05
#permalink

LOLWUT? Массив — это объект JavaScript, причём тут стили?


Автор: goss, дата: 27 января, 2014 - 02:14
#permalink

может все-таки сериализовать? toString?


Автор: Незарегистрированный (не зарегистрирован), дата: 26 августа, 2013 - 18:03
#permalink

Жаль, что не освещены самые, на мой взгляд, полезные методы: map, filter, reduce, reduceRight, forEach, every, some.

С ними работа с массивами становится очень приятным делом.


Автор: notRegixtered (не зарегистрирован), дата: 6 декабря, 2013 - 01:10
#permalink

не подскажете в каком случае arr[arr.length]=a и arr.push(a) не эквивалентны ?


Автор: goss, дата: 27 января, 2014 - 02:18
#permalink

Что делать, если нужно найти максимум в массиве? Поможет метод apply.

var nums = [1,2,10,4,5];
console.log(Math.max.apply(null, nums)); // или Math.max.apply(Math, nums)

Чтобы каждый раз не вызывать такой метод для массива через Math, его можно определить для прототипа класса Array.

Array.prototype.max = function() {return Math.max.apply(null, this);};


Автор: Null (не зарегистрирован), дата: 13 марта, 2014 - 18:46
#permalink

Добрый день товарищи. Столкнулся на мой взгляд с примитивной задачей. Подозреваю решение тоже не должно быть особо сложным. Вопрос простой, как можно к определённым элементам массива назначить одно значение.
Мне казалось что так будет работать а нет, назначается только одному элементу.

requiredfields[0,1,2,4,5,8].setRequiredLevel("none");

Не хочется описывать каждый элемент по отдельности, хоть их и не много.


Автор: Денис Решетняк (не зарегистрирован), дата: 15 марта, 2014 - 23:40
#permalink

Null, можно сделать двумя способами, но функционал одинаковый.
Первый вариант - это записать функцию в прототип, а второй - создать простую функцию. Разница только в использовании и передаваемых параметрах.

var requiredfields = [1,2,3,4,5,6,7,8,9];

Array.prototype.setRequiredLevel = function(indexes, value) {
    var arr = this;
    arr.forEach(function(el, i){
        if (indexes.indexOf(i) > -1) {
            arr[i] = value;
        }
    });
}

function setRequiredLevel(arr, indexes, value) {
    arr.forEach(function(el, i){
        if (indexes.indexOf(i) > -1) {
            arr[i] = value;
        }
    });
}
console.log('array before set value', requiredfields);
//вариант с прототипом
//requiredfields.setRequiredLevel([0,1,2,7], 'new value');
//вариант с функцией
setRequiredLevel(requiredfields, [0, 3, 5, 8], 'new value');
console.log('array after set value', requiredfields);

Автор: Null (не зарегистрирован), дата: 19 марта, 2014 - 14:16
#permalink

Какой злой код получился! Спасибо за помощь!
Я тут попутно нашёл метод "splice" для массива, вроде с ним по проще будет решение:)


Автор: Givis, дата: 16 апреля, 2014 - 18:26
#permalink

Здравствуйте, есть вопрос касательно элементов массивов. Вот кусок скрипта:

var obj = {
	             name : "Имя"
	        };

		var objArray = [obj, obj];
		obj = null;
		alert(obj);
		
		for (var i = 0; i < objArray.length; i++)
			alert(objArray[i].name);

Мне казалось, что при указании obj = null по ссылке занулятся и элементы массива. Однако, в последнем alert мне вывелось два раза "Имя". При этом, если у obj занулить поле name, то тогда у элементов массива будет занулён name.
Вопрос - почему так?


Автор: Гость (не зарегистрирован), дата: 22 мая, 2014 - 09:38
#permalink

Потому что объекты передаются/присваиваются по ссылке.
Сперва был создан объект с name:'Вася', его ссылка была записана в "var obj".
Затем ссылка на объект была добавлена в массив 2 раза.
Затем ссылка в obj была удалена, но сам объект остался в памяти.
Соответственно, т.к. у массива имеются ссылки на объект в памяти, обращение к свойству name работает и возвращает 'Вася'.


Автор: Гость (не зарегистрирован), дата: 28 мая, 2014 - 10:09
#permalink

Подскажите, пожалуйста, как сделать следующее преобразование:
задан массив var arr1=[elem1,elem2,...,elemn] //элементы этого массива переменные; необходимо пройтись по этому массиву, с каждой переменной сделать однотипное математической преобразование, в результате получить новый массив, состоящий из преобразованных переменных var arr2=[elem1new, elem2new,..., elemnnew]? Заранее спасибо.


Автор: Гость (не зарегистрирован), дата: 21 ноября, 2014 - 17:53
#permalink

в php есть удобный способ присвоения различным переменным значения соответствующих элементов массива, например:
$arr = array('1', '2',.. );
list($a, $b) = $arr;
т.е. иными словами результат предыдущей строчки будет аналогичен коду:
$a = $arr[0] //== '1'
$b = $arr[1] //== '2'

есть ли нечто похожее в javascript?


Автор: Гость (не зарегистрирован), дата: 20 марта, 2015 - 16:13
#permalink

добавьте в справочник описание метода forEach, подробнее
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global...


Автор: Гость (не зарегистрирован), дата: 18 августа, 2015 - 14:34
#permalink

var arr = [ 4, "test", , false, [0,1] ]
alert(arr[1]) // => "test"
alert(arr[2]) // => undefined
alert(arr[3]) // => false
alert(arr[4][1]) // => 1

Я не понял почему в 3-ей сторочке элемент underfined, если элементы в массиве нумеруются с нуля, то 2-й элемент должен быть false. Тот же вопрос и по 4 строчке. Поясните, пожалуйста.


Автор: Гость (не зарегистрирован), дата: 8 октября, 2017 - 00:16
#permalink

Потому что между элементами "test" и false есть неуказанный элемент(, ,). Вот и получается что
arr[2] //=> undefined.
А четвертой строчке кода нужен второй элемент в пятом элементе arr массива, который имеет значение 1. (Просто это массив в массиве)
alert(arr[4][1]) // => 1


Автор: dronsen, дата: 25 августа, 2015 - 11:48
#permalink

Всем привет!
Есть такой селектор

<lable>forfeit:
        			<select name="forfeit" id="forfeit_select">
        				<option value="none">select...</option>
						<option value="0,0964516129032258">Banner</option>
						<option value="0,1609677419354839">Copyright</option>
        		    </select>
           		</lable><br/>
<button id="result_forfeit" onclick="forfeit_pait()">to get result</button>

По нажатии кнопки выполняется следующая функция:

function forfeit_pait(){
var type = document.getElementById('forfeit_select').value;
var paid=1*type;
	alert(paid);
}

Вопрос, почему из value передается строковый тип данных вместо числового? И как сделать что бы передавалось число?


Автор: Гость (не зарегистрирован), дата: 8 сентября, 2015 - 20:26
#permalink

Если указан лишь один числовой параметр elem0 и массив объявлен через new Array, то будет инициализирован пустой массив длины, равной данному числу. При этом все элементы являются undefined.

Please note, that new Array(45); does not "create a 45 element array" (in same meaning as [undefined,undefined,..undefined] does). It rather "creates empty array with length = 45" ([undefined x 45]), same as var foo = []; foo.length=45;. That's why forEach, and map will not apply in this case. – tomalec Jan 24 '14 at 14:00


Автор: Гость (не зарегистрирован), дата: 31 января, 2016 - 20:12
#permalink

а как же : reduce(), map(), filter(), some(), every()?


Автор: Гость (не зарегистрирован), дата: 24 декабря, 2017 - 13:18
#permalink
var n = +prompt( 'значение n', '' );

function fib(n) {
    var a = 1,
        b = 1;
    for (var i = 3; i <= n; i++) {
        var c = a + b;
        a = b;
        b = c;
    }

    return b;
}

console.log( fib( n ) );

задача:не применяя методы массивов вывести n первых членов ряда Фибоначчи


Автор: Гость (не зарегистрирован), дата: 19 января, 2018 - 15:18
#permalink

Никак не могу понять. Почему это не работает:

var arr = Array(3);
        //arr.fill(0);
        var arr2 = arr.map((item,i,ar) => {
           return 1;
        });
        console.log("arr:", arr);
        console.log("arr2:",arr2);

, а это работает:

var arr = Array(3);
        arr.fill(0);
        var arr2 = arr.map((item,i,ar) => {
           return 1;
        });
        console.log("arr:", arr);
        console.log("arr2:",arr2);

Автор: Гость (не зарегистрирован), дата: 23 марта, 2019 - 20:09
#permalink

Ошибка есть:

arr[arr.length] = 5

Нужно:

arr[arr.length-1] = 5


Автор: Гость (не зарегистрирован), дата: 25 января, 2022 - 04:01
#permalink

Здравствуй, JS!))
Есть многомерный массив:

let matrix = [
  ["a", "b", "c"], 
  ["d", "e", "f"], 
  ["x", "y", "z"]
];

Как к каждому подмассиву присоединить соответствующий аудиофайл, чтобы при вызове подмассива он звучал?
Спасибо!


Автор: Гость (не зарегистрирован), дата: 15 апреля, 2022 - 23:19
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 13:59
#permalink

Автор: endenco (не зарегистрирован), дата: 13 июля, 2023 - 07:26
#permalink

These ideals are the most fundamental. Learning more about this expertise is excellent. octordle


Автор: Trame1943 (не зарегистрирован), дата: 8 ноября, 2023 - 14:12
#permalink

Now, you can encounter many animatronics in fnaf games.


Автор: enola (не зарегистрирован), дата: 9 ноября, 2023 - 06:07
#permalink

I believe it's great that you take some time out of your day to spend it playing , which you can find at poppy playtime Those kinds of games, as these function as a stress reliever, but if it becomes excessive to the point where you spend more time playing than you do focusing on your priorities, then it is really not a good idea to continue doing so.


Автор: Lonklo (не зарегистрирован), дата: 12 декабря, 2023 - 07:43
#permalink

These kinds of games are good because they help you decompress, but if you play them too much and lose focus on your priorities in the process, basket random


Автор: Risa Noel (не зарегистрирован), дата: 29 января, 2024 - 21:30
#permalink

In JavaScript, an array is a data structure that stores a collection of elements. These elements can be of any data type, including numbers, strings, objects, or even other arrays. basket random


Автор: DavidOmondi (не зарегистрирован), дата: 29 февраля, 2024 - 20:33
#permalink

In JavaScript, an array serves as a data structure designed to contain a grouping of elements. These elements are versatile, accommodating various data types such as integers, text strings, objects, or even nested arrays. This feature provides additional flexibility and functionality bonus.


Автор: Deneme Bonusu Veren Siteler (не зарегистрирован), дата: 25 апреля, 2024 - 06:20
#permalink

Deneme Bonusu Veren Siteler yabancı bahis sitesinde kazançlı oyun oynamak için birçok olanak sağlanır. Yüksek oranlar, canlı casino oyunları oynayabilme, şansa dayalı oyunlar


Автор: Eldeco La Vida Bella (не зарегистрирован), дата: 30 мая, 2024 - 12:19
#permalink

Eldeco La Vida Bella in Noida Extension provides luxurious 3 and 4 BHK residences that include servant rooms. With its top-notch amenities such as a clubhouse, fitness center, and swimming pool, this property ensures ease and relaxation. Due to its strategic location to hospitals, schools and key transportation hubs, this location provides excellent connectivity and investment opportunities.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
1 + 9 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum