从字符串数组在javascript中创建对象

从字符串数组在javascript中创建对象,javascript,Javascript,为什么在尝试创建一个数组(arrayTextAreasNamesAndValues)时,使用从另一个数组(arrayTextAreasNames)中提取的字符串作为键名,会得到“语法错误:缺少:在属性id之后” var arraytextaresnames=[“姓名”、“姓氏”、“出生日期]; var arrayTextAreasNamesAndValues=[]; 对于(var i=0;i您不能使用变量为name属性赋值 arrayTextAreasNamesAndValues[i] = {

为什么在尝试创建一个数组(arrayTextAreasNamesAndValues)时,使用从另一个数组(arrayTextAreasNames)中提取的字符串作为键名,会得到“语法错误:缺少:在属性id之后”

var arraytextaresnames=[“姓名”、“姓氏”、“出生日期];
var arrayTextAreasNamesAndValues=[];

对于(var i=0;i您不能使用变量为name属性赋值

arrayTextAreasNamesAndValues[i] = 
{
    arrayTextAreasNames[i]: "text",  //Syntax error: missing :after property id
};
你需要把它改成

 arrayTextAreasNamesAndValues[i][arrayTextAreasNames[i]] = "text";

不能直接访问对象内部的数组值。必须使用括号

var arrayTextAreasNames = ["name","surname","dob"];
var arrayTextAreasNamesAndValues=[];

for (var i=0; i<arrayTextAreasNames.length; i++) 
{
    arrayTextAreasNamesAndValues[i] = {};
    arrayTextAreasNamesAndValues[arrayTextAreasNames[i]] = "text";
}
console.log(arrayTextAreasNamesAndValues);
var arraytextaresnames=[“姓名”、“姓氏”、“出生日期];
var arrayTextAreasNamesAndValues=[];

对于(var i=0;i您不能将变量用作对象属性名

var arraytextaresnames=[“姓名”、“姓氏”、“出生日期];
var arrayTextAreasNamesAndValues=[];

对于(var i=0;i,如果您想要一个对象作为结果,可以使用以下命令:

var arraytextaresnames=[“姓名”、“姓氏”、“出生日期];
var值=['John','Smith','04/03/1954'];
var arrayTextAreasNamesAndValues={};
对于(变量i=0;iconsole.log(arrayTextAreasNamesAndValues);
您可以使用ES6增强型对象文本直接执行此操作:

arrayTextAreasNamesAndValues[i] = {
    [arrayTextAreasNames[i]]: "text"
};
或者,更好的是

arrayTextAreasNamesAndValues = arrayTextAreasNames.map(name => {
    [name]: "text"
});

arrayTextAreasNamesAndValues
的所需输出是什么?
arrayTextAreasNamesAndValues = arrayTextAreasNames.map(name => {
    [name]: "text"
});