如何在跟踪变量名称的同时对变量值进行排序?

时间:2019-02-12 02:36:05

标签: javascript

我有7个变量:圈地,赛亚,巴尔萨扎,米特拉,露娜,卡里普索和基亚拉。他们每个人都将计算所得的值存储在程序的初始部分。

我想要的是在跟踪变量名称的同时,根据它们持有的值对这些变量进行排序。

我正在编写这段代码,试图在Wix上为我11岁的女儿建立一个网站。

var points = [rodeo, mistral, calypso, kiara, balthazar, saya, luna];
points.sort(function(a, b){return a-b});   
console.log(points)   

使用此代码,我得到:
0:2
1:2
2:2
3:2
4:3
5:3
6:4

哪个排名好,但是我不知道哪个值属于哪个变量...这是我的问题...

2 个答案:

答案 0 :(得分:2)

为此,您应该使用array中的Object。您可以使用find()来获取name的值。

var points = [{name:"rodeo",value:3}, {name:"mistral",value:3},{name:"calypso",value:1}, {name:"kiara",value:6}, {name:"balthazar",value:3}, {name:"saya",value:2}, {name:"luna",value:4}];
points = points.sort((a,b) => a.value - b.value);
console.log(points)
console.log("value of kiara = " + points.find(({name}) => name === "kiara").value)

答案 1 :(得分:0)

一种可能是将变量存储为数组中的对象,然后对这些对象的值进行排序。这样,您可以查看哪个“变量”与哪个值相关联。

请参见以下示例:

SELECT * 
FROM User
JOIN Country 
ON User.country = Country._id 
WHERE Country.name = VietNam
var rodeo = 3;
var mistral = 2;
var calypso = 2;
var kiara = 2;
var balthazar = 2;
var saya = 4;
var luna = 3;
var points = [{rodeo}, {mistral}, {calypso}, {kiara}, {balthazar}, {saya}, {luna}],

result = points.sort(function(a, b){return Object.values(a)[0]-Object.values(b)[0]});
console.log(result);