如何在数组内部打印变量名?

时间:2019-04-18 03:24:41

标签: javascript arrays sorting object

我已经制作了一个数组并在其中放置了一些变量,我想使用索引号获取变量的名称。

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 个答案:

答案 0 :(得分:2)

您可以改用对象,可以使用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 :(得分:1)

使用由这些变量名称索引的对象代替,然后可以使用该对象的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])
);

答案 2 :(得分:0)

您无法使用数组-必须使用一个对象。您可以使用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; }

答案 3 :(得分:-1)

这可能会解决您的问题:

var variableName = 0;
console.log(Object.keys({
  variableName
})[0]);