javascript - For...of 循环调用字符串中的变量名称

标签 javascript arrays for-of-loop

对 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 数组。但是,据我所知,我无法对 obj/key 数组进行排序,并且必须在计算总和后对其进行数字排序。我很难让事情足够流畅,保持正确的顺序,同时仍然能够命名每个数字代表的变量。我愿意接受建议或打印我的完整代码(约 50 行)以了解上下文。

编辑

这是我的上下文代码的一些简写,请记住,这从数组和函数中删除了许多行。函数中可能有大约 6 个变量,每个变量都有自己的 sum 和 .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));

};

最佳答案

没有额外的上下文,因为“主动性”让我想到 Angular 色扮演游戏,我会假设这是为了类似的事情。我可能在这里偏离了基地,但希望我没有!

这里的想法是,每个玩家当前的姓名和倡议值(但可扩展为更多内容)由 {} 对象表示,并且它们位于 [] 中 数组。

正如您所看到的,我故意以任意顺序对它们进行排序,这样我们就可以看到排序工作正常进行。

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!

关于javascript - For...of 循环调用字符串中的变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60089283/

相关文章:

javascript - 如何使用对象的键返回过滤后的对象数组

php - 如何将数组值添加到 Eloquent ORM::get() 输出

javascript - 在 JavaScript 中使用 for..of 迭代时从数组中删除元素应该是安全的吗?

javascript - 如何在网页中使用 JavaScript 移动幻灯片

PHP/JavaScript 表单验证?

javascript - 从 readFile 内部设置全局数组

typescript - 类型 'HTMLCollectionOf<HTMLCanvasElement>' 必须有一个返回迭代器的 '[Symbol.iterator]()' 方法

javascript - 为什么 Typescript 中的 `for...of` 在循环之前复制可迭代对象?

javascript - TSLint。最大语句规则 - 可用吗?

javascript - 此处出现意外的“super”关键字