从字符串数组在javascript中创建对象
为什么在尝试创建一个数组(arrayTextAreasNamesAndValues)时,使用从另一个数组(arrayTextAreasNames)中提取的字符串作为键名,会得到“语法错误:缺少:在属性id之后”从字符串数组在javascript中创建对象,javascript,Javascript,为什么在尝试创建一个数组(arrayTextAreasNamesAndValues)时,使用从另一个数组(arrayTextAreasNames)中提取的字符串作为键名,会得到“语法错误:缺少:在属性id之后” var arraytextaresnames=[“姓名”、“姓氏”、“出生日期]; var arrayTextAreasNamesAndValues=[]; 对于(var i=0;i您不能使用变量为name属性赋值 arrayTextAreasNamesAndValues[i] = {
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;i console.log(arrayTextAreasNamesAndValues);
您可以使用ES6增强型对象文本直接执行此操作:
arrayTextAreasNamesAndValues[i] = {
[arrayTextAreasNames[i]]: "text"
};
或者,更好的是
arrayTextAreasNamesAndValues = arrayTextAreasNames.map(name => {
[name]: "text"
});
arrayTextAreasNamesAndValues
的所需输出是什么?
arrayTextAreasNamesAndValues = arrayTextAreasNames.map(name => {
[name]: "text"
});