Создает новый массив.
Копирует в него текущий объект array и значения value1, value2, ...
При этом, если значение является массивом, то в результат попадут его элементы (в отличие от push), а не сам аргумент.
Метод concat ничего не меняет. Вместо этого он просто возвращает комбинацию "в один уровень глубиной" текущего объекта и аргументов.
Элементы аргументов-массивов добавляются в результат следующим образом:
- Объекты
- Копируется ссылка на объект. Таким образом, старый и новый массив ссылаются на один и тот же объект. Если объект меняется - эти изменения видны и в новом и в старом массивах.
- Элементарные значения
- Копируются "как есть"
Пример: объединение двух массивов
var alpha = ["a", "b", "c"];
var numeric = [1, 2, 3];
// создает массив ["a", "b", "c", 1, 2, 3];
var alphaNumeric = alpha.concat(numeric);
Пример: объединение трех массивов
var num1 = [1, 2, 3];
var num2 = [4, 5, 6];
var num3 = [7, 8, 9];
// создает массив [1, 2, 3, 4, 5, 6, 7, 8, 9];
var nums = num1.concat(num2, num3);
Пример: добавление значений в массив
var alpha = ['a', 'b', 'c'];
// создает массив ["a", "b", "c", 1, 2, 3]
var alphaNumeric = alpha.concat(1, [2, 3]);
"Объекты
Копируется ссылка на объект. Таким образом, старый и новый массив ссылаются на один и тот же объект. Если объект меняется - эти изменения видны и в новом и в старом массивах."
почему же значение не меняется?
Потому что здесь:
присваивается не ссылка на MyArr, а создается новый массив, ссылка на который записывается в Result.
если не понял, замени MyArr[0]=0 на Result[0]=0
Потому что в массиве у тебя не объекты, а элементарные значения. Чтобы значение менялось, нужно создавать объект, например, Number(6), и менять уже его.
если объединение двух массивов - массив, то с ним можно работать, как с массивом. Тогда почему не работает код:
array1= new Array ("Первый", "Второй", "Третий");
аrray2 = new Array ("Один", "Два", "Три") ;
document.write (array1.concat(array2).join ())
вопрос снят. Найдена ошибка в коде (у переменной array2 при объявлении первая буква русская). Спасибо Firebug)
Отправить комментарий
Приветствуются комментарии:- Полезные.
- Дополняющие прочитанное.
- Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.Для остальных вопросов и обсуждений есть форум.