一般情况下,JS和代码都是非常新的(假设为0知识库,不到一周),所以我对这个问题的解释将缺乏光泽,但下面是简单的说明。
我有一个函数,取两个obj的值。数组并将值添加到一起。然后将该和发送到一个新数组(allinit),最后对新数组进行数值排序。我需要将它们按数字顺序排列,并对每个变量应用一个唯一的字符串。
使用第二个函数(乐趣)和For...of循环,我生成了以下内容:
var allinit = [jim,dave,bob]
var fun = (allinit) => {
for (var element of allinit) {
console.log( element + [the name of the variable] + 'initiative')
}使用我分配的第一个函数:
var jim = 10
var Dave =15
var Bob = 20如何使用这个For...of函数打印:
10 Bob Initiative目前的“10项倡议”
通过调用元素10所代表的变量名?
立即的答案是使用obj/key Array。然而,据我所知,我无法对obj/key Array进行排序,它必须在计算完和之后进行数值排序。我很难保持事物的流动性,保持正确的顺序,同时仍然能够命名每个数字所代表的变量。我愿意接受建议或打印我的完整代码(大约50行)作为上下文。
编辑
这里是我的上下文代码的一些简写,请记住,这从数组和函数中删除了许多行。函数中可能有大约6个变量,每个变量都有自己的和.push()
var R = {
a:5,
d:2
};
var B = {
a:10,
d:18,
};
var Start = (R,B) => {
var allinit = [
];
var ai = (R.a + B.a);
allinit.push(ai);
var di = (R.d + B.d);
allinit.push(di);
allinit.sort((a,b)=>a-b);
var fun = (allinit) => {
for (var element of allinit) {
console.log( elemement+ ** Variable name here** + ' inititive')
}
};
console.log(fun(allinit));
};发布于 2020-02-06 07:15:21
没有额外的上下文,因为“主动性”会让我想到RPG,我会假设这是为了类似的事情。我可能不在这里,但希望我不是!
这里的想法是,每个播放器,目前它们的名称和主动性值(但可扩展更多的东西)是由一个{}对象表示的,它们位于一个[]数组中。
正如您所看到的,我故意将它们按任意顺序排序,这样我们就可以看到排序的工作原理。
var players = [
{name: "Jim", initiative: 10},
{name: "Bob", initiative: 20},
{name: "Dave", initiative: 15},
{name: "Uthorr the Star-Slayer", initiative: 3},
];
// Declare a callback for sort - named here for clarity.
function sortByInitiative(p1, p2) {
// Sort into ascending initiative order (switch up `p1` and `p2` for descending).
return p1.initiative - p2.initiative;
}
// Sort players in place.
players.sort(sortByInitiative);
// Loop over them and print salient information.
players.forEach((player, index) => {
console.log(`Player ${index + 1} is ${player.name} with initiative ${player.initiative}!`);
});输出是
Player 1 is Uthorr the Star-Slayer with initiative 3!
Player 2 is Jim with initiative 10!
Player 3 is Dave with initiative 15!
Player 4 is Bob with initiative 20!发布于 2020-02-06 07:11:14
不太确定我是否理解您的目的,但听起来您想要使用Object.entries,然后根据数字进行排序,然后处理。
var jim = 10
var Dave = 15
var Bob = 20
console.log(
Object
.entries({Bob, jim, Dave}) // [['Bob', 20], ['jim', 10], ['Dave', 15]]
.sort((a, b) => a[1] - b[1]) // [['jim', 10], ['Dave', 15], ['Bob', 20]]
.map((v) => `${v[0]} ${v[1]} initiative`)
.join('\n')
);
https://stackoverflow.com/questions/60089283
复制相似问题