我想基于函数的参数创建动态变量,但遇到了一些麻烦。我正在尝试创建一个函数
1)输入类型名称,参数,
2)把它变成一个物体,
3)添加相关信息,并
4)将其推入称为书架的空数组中。
但是,我的问题是,当我分配参数时genre = new Object();
,参数genre
的名称是对象的名称,而不是我给它的参数。因此,如果输入流派'Romance',则书架数组中的对象是流派而不是'Romance'。这是一个问题,因为我需要阵列来容纳不同的流派名称...
var bookshelf = [];
//Input: genre = 'Romance'
function addGenre (genre) {
var genre = new Object ();
genre.someInfo = true;
bookshelf.push(genre);
return bookshelf;
//Ideal output: Romance {someInfo: true}
//Actual output: genre {someInfo: true}
}
//I attempted to use string literals, but I think that's illegal...
function addGenre (genre) {
var `${genre}` = new Object ();
genre.someInfo = true;
bookshelf.push(genre);
return bookshelf;
}
祝你有美好的一周:)
我认为这是您想要的语法。方括号使您可以使用变量为新对象创建属性名称。
const bookshelf = [];
addGenre("romance");
console.log("bookshelf:");
console.log(bookshelf);
function addGenre (genre) {
const newGenre = {
[genre]: {someInfo: true}
};
bookshelf.push(newGenre);
return bookshelf;
}
newGenre
本例中的对象字面量一样) 和数组字面量通常比使用 new Object()
and 更为可取 new Array()
,尽管我不记得为什么要花时间了。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句