javascript - 将所有数组项转换为具有相同(或相似)名称的变量?
问题描述
我有一个名字数组:
var namesArray = [Matthew, Mark, Luke, John]
我想将每个转换为相同或相似名称的变量,即:
var MatthewVar = 1;
var MarkVar = 2;
var LukeVar = 3;
var JohnVar = 4;
但我需要动态地执行此操作(假设数组中有更多名称)。
这就是我所拥有的,但它不喜欢 var 名称:
for(var i = 0; i<namesArray.length; i++){
var (namesArray[i] + 'Var') = namesArray[0].indexOf(namesArray[i]) + 1;
}
想法?
解决方案
const namesArray = ['Matthew', 'Mark', 'Luke', 'John'];
const namesObject = namesArray.reduce((namesObject, name, index) => {
namesObject[name] = index + 1;
return namesObject;
}, {});
console.log(namesObject); // { Matthew: 1, Mark: 2, Luke: 3, John: 4 }
console.log(namesObject.Matthew); // 1
console.log(namesObject['Matthew']); // 1
推荐阅读
- prolog - 为什么 SWI-Prolog 的行为看似不一致?
- scala - 如何读取大流并比较计数?
- c++ - 将数据写入文件和 CodeGuard 错误通知
- java - 媒体播放器被安卓系统杀死
- java - 如何使用 AnnotationConfigApplicationContext 处理“没有合格的 bean”错误
- elixir - 我可以使用 ExUnit 和 Mix 将辅助模块拆分为不同的文件吗?
- security - 为什么在数据库已经受到威胁时使用哈希密码?
- php - Symfony 3.4 - 确保安装并启用注释
- php - 无法在编辑页面 laravel 上显示数据库值
- c# - WinForms 富文本框