Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.02.2020, 20:38
Новичок на форуме
Отправить личное сообщение для Амай Посмотреть профиль Найти все сообщения от Амай
 
Регистрация: 17.01.2020
Сообщений: 8

Авто добавление элементов в массив js
Доброй ночи, есть массив и есть переменная в которой значения меняется динамически, как сделать так чтобы значения переменной передавались в массив и сохранялись как элементы массива? Пытался через push но предыдущие значения переменно в массиве не остаются, а только текущее значение, например var fruits = ["Яблоко", "Апельсин"];
var t = "манго"; fruits.push(t); Если t изменится то и в массиве предыдущие значения не останутся, как сделать чтобы все значения переменной сохранялись? Заранее спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 29.02.2020, 20:56
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,703

Сообщение от Амай Посмотреть сообщение
например var fruits = ["Яблоко", "Апельсин"];
var t = "манго"; fruits.push(t);
Вот для данного случая быть такого не может.
Такое может быть, если в массив заносятся объекты

var fruits = [{name:"Яблоко"}, {name:"Апельсин"}]; 
var t = {name:"манго"};  
fruits.push(t); 
t.name="лимон"  // frutis[2].name === 'лимон'
Ответить с цитированием
  #3 (permalink)  
Старый 29.02.2020, 21:09
Новичок на форуме
Отправить личное сообщение для Амай Посмотреть профиль Найти все сообщения от Амай
 
Регистрация: 17.01.2020
Сообщений: 8

А как сделать чтобы все значения переменной добавлялись в массив ?
Ответить с цитированием
  #4 (permalink)  
Старый 29.02.2020, 21:24
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Вы должны добавлять значения в массив там, где эта ваша переменная изменяется. Остальные варианты - говнокод.

В можете, если переменная глобальная, поставить вместо неё геттер с сеттером, но это имеет смысл только в каких-нить в юзерскриптах.
<script>
function watchGlobalVariable(name, array = []) {
  var value
  
  Object.defineProperty(window, name, {
  	get(){
    	return value;
    },
    set(newValue) {
    	array.push(value = newValue);
    },
    enumerable: true,
    configurable: true
  })

  return array;
}
var fruits = ["Яблоко", "Апельсин"]; 
watchGlobalVariable('t', fruits);
</script>

<script>
var t = "манго";

t='банан';
t='кокос';
t='груша';

document.write(fruits)
</script>
__________________
29375, 35

Последний раз редактировалось Aetae, 29.02.2020 в 21:41.
Ответить с цитированием
  #5 (permalink)  
Старый 29.02.2020, 21:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Амай,
что изменяет t, то пусть и обновляет массив. задача не локализована.
Ответить с цитированием
  #6 (permalink)  
Старый 29.02.2020, 21:43
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

рони, я это первой строкой написал.
Но возможность то есть.)
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 29.02.2020, 21:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Aetae,
Ответить с цитированием
  #8 (permalink)  
Старый 29.02.2020, 21:57
Новичок на форуме
Отправить личное сообщение для Амай Посмотреть профиль Найти все сообщения от Амай
 
Регистрация: 17.01.2020
Сообщений: 8

Спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод таблицы Excel в массив JS или объект JS the_little Общие вопросы Javascript 4 16.03.2018 15:14
Получить массив из php d js freelancerphpcss jQuery 3 02.07.2013 15:29
Массив ссылок в js wildf Общие вопросы Javascript 9 15.05.2013 18:37
массив в ПХП, обработка в JS. Скоробогатов Events/DOM/Window 4 15.09.2012 02:37
Как перевести json строку в js массив? Tek Общие вопросы Javascript 1 25.03.2012 17:11