我已经制作了一个数组并在其中放置了一些变量,我想使用索引号获取变量的名称。
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的值,然后根据它们的值对它们进行排序,但是当它们被使用后,我仍然希望能够以新的顺序查看它们的变量名。排序。
答案 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]);