Как вы печатаете имена переменных внутри массива? - PullRequest
1 голос
/ 18 апреля 2019

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

var a = 0;
var b = 0;
var c = 0;

var letters = [a,b,c]

console.log(letters)

Я хочу, чтобы он вывел «[a, b, c]», но этот код на самом деле выдает «[0, 0, 0]»

Для большего контекста я планирую взять значения a, b и c, а затем отсортировать их по их значениям, но затем я все еще хочу иметь возможность видеть имена их переменных в новом порядке после того, как они были отсортированный.

Ответы [ 4 ]

2 голосов
/ 18 апреля 2019

Вместо этого вы можете использовать объект. Вы можете получить ключи в виде массива, используя Object.keys, а затем сортировать их

const obj = {
  a: 0,
  b: 2,
  c: 1
};
console.log(Object.keys(obj));

//sort keys based on values

const sorted = Object.keys(obj).sort((a,b)=> obj[a]-obj[b])

console.log(sorted)
1 голос
/ 18 апреля 2019

Вместо этого используйте объект, проиндексированный этими именами переменных, и затем вы можете взять Object.keys этого объекта, который даст вам массив свойств:

const obj = {
  a: 0,
  b: 0,
  c: 0
};
console.log(Object.keys(obj));

Я хочу получить имя переменной, используя индексный номер.

Доступ к этому индексу в массиве Object.keys, например, Object.keys(obj)[1] будет иметь значение b.

Для сортировки возьмите Object.entries объекта (который даст вам и ключ, и значение одновременно):

const obj = {
  a: 0,
  b: 2,
  c: 1
};
console.log(
  Object.entries(obj)
    .sort((a, b) => a[1] - b[1])
);
0 голосов
/ 18 апреля 2019

Вы не можете сделать это с массивом - вам придется использовать объект.Вы можете получить ключи с помощью Object.keys, а значения с помощью Object.values:

var a = 0;
var b = 0;
var c = 0;
var letters = {a, b, c};

console.log(Object.keys(letters));
console.log(Object.values(letters));
.as-console-wrapper { max-height: 100% !important; top: auto; }
0 голосов
/ 18 апреля 2019

Это может решить вашу проблему:

var variableName = 0;
console.log(Object.keys({
  variableName
})[0]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...