Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.04.2012, 16:55
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Как сделать переменную не изменяемой?
Такая задача:
var m = [1,2,3,4,5]
var m1 = m
m[1] = 'aaaa'
alert(m1)

Как сделать m1 равной m, но не зависимой от нее?
__________________
оляля, ололо
Ответить с цитированием
  #2 (permalink)  
Старый 23.04.2012, 17:11
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var m = [1,2,3,4,5]
var m1 = Array.prototype.slice.call( m );
m[1] = 'aaaa'
alert(m1)
alert(m)
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 23.04.2012, 18:36
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,745

Сообщение от 9xakep
Как сделать m1 равной m, но не зависимой от нее?
Если m1 равно m, это значит, что эти переменные хранят ссылку на один и тот же массив, если вы хотите сделать их независимыми, это значит вы хотите просто скопировать содержимое одного массива в другой (например, циклом, или методом slice, как предложил, devote).
Другое дело, если вы в этом вопросе захотели узнать как сделать зависимыми все элементы двух массивов, кроме одного из этих элементов.

Последний раз редактировалось bes, 23.04.2012 в 18:38.
Ответить с цитированием
  #4 (permalink)  
Старый 23.04.2012, 19:17
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 09.07.2008
Сообщений: 3,873

Сообщение от devote
var m = [1,2,3,4,5]
var m1 = Array.prototype.slice.call( m );
var m1 = m.slice();


А еще, 9xakep, рекомендую прочитать: http://alljs.ru/articles/array/concat#clone

Последний раз редактировалось Octane, 23.04.2012 в 19:21.
Ответить с цитированием
  #5 (permalink)  
Старый 23.04.2012, 19:24
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Octane
var m1 = m.slice();
ну да тупнул
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #6 (permalink)  
Старый 23.04.2012, 20:09
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Всем спасибо.
__________________
оляля, ололо
Ответить с цитированием
  #7 (permalink)  
Старый 24.04.2012, 19:59
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 09.07.2008
Сообщений: 3,873

Когда же ты эволюционируешь хотя бы в Слоубро?!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запомнить переменную js в одном файле и использовать в другом. как? skalka Общие вопросы Javascript 2 28.09.2010 07:19
Как сделать? При выходе мышкой за пределы окна браузера, начинает грузится другая стр alb Events/DOM/Window 13 01.09.2010 11:19
Как отлаживать события? Или как сделать трассировку вызовов функций? gennad Events/DOM/Window 1 18.08.2010 12:21
как сделать выпадающий список, чтобы второй зависил от значения первого???? zsaz jQuery 2 16.07.2010 19:12
Нужно сделать плавное появление текстового поля как на сайте vkontakte.ru paratrooper1981 Элементы интерфейса 1 23.11.2009 17:24