首页 > 解决方案 > 将所有数组项转换为具有相同(或相似)名称的变量?

问题描述

我有一个名字数组:

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;
}

想法?

标签: javascriptarraysfor-loopgoogle-apps-scriptvar

解决方案


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

推荐阅读