@MrFox235
Начинающий веб-разработчик

Является ли это корректной записью?

Я хочу создать массив который будет хранить в себе имена переменных, как можно это сделать?
У меня получилась сделать так, но я не могу заменить значение переменной:
let arr = [];

arr.push(a = 3);
arr.push(b = 15);

console.log(arr);
console.log(arr[0], arr[1]);
console.log(a, b);
console.log(a + b);
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Не является. Массив используется на хранения списка значений, в нём нет никаких "имён".
Значения с "именами" можно хранить либо в объекте, либо в специальном типе Map.

Но при этом, если речь про значения примитивных типов, то при их добавлении в объект или Map теряется связь с изначальной переменной, откуда значение было взято.

let a = 3;
let b = 15;

let one = {};

one.a = a;
one.b = b;

a = 42;

console.log(one.a, one.b); // 3, 15
console.log(a, b); // 42, 15


let a = 3;
let b = 15;

let two = new Map();

two.set('a', a);
two.set('b', b);

a = 42;

console.log(two.get('a'), two.get('b')); // 3, 15
console.log(a, b); // 42, 15
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@alekssamos
Программист любитель
let arr = {
    a: 3, b: 15,
};

console.log(arr);
console.log(arr.a+arr.b);
for (j in arr){
    console.log(`arr.${j} = ${arr[j]}\n`);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы