JavaScript数组键/值对使用键的文字变量名称 [英] JavaScript Array of Key/Value Pairs Uses Literal Variable Name for Key
本文介绍了JavaScript数组键/值对使用键的文字变量名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用 push
方法创建一个键/值对数组,但会产生意外结果。
I'm trying to create an array of key/value pairs by using the push
method, but getting unexpected results.
console.log
打印出来:
books:[{ bookTitle:Mark Twain}]
books: [{"bookTitle":"Mark Twain"}]
我希望如此:
书籍:[{Tom Sawyer:Mark Twain}]
books: [{"Tom Sawyer" : "Mark Twain"}]
这里是代码:
var books = [];
var bookTitle = "Tom Sawyer";
var author = "Mark Twain";
books.push({bookTitle : author})
console.log("books: %s", JSON.stringify(books))
我试过 books.bookTitle = author
和 books [bookTitle] = author
,但结果是一样的。任何帮助表示赞赏。
I've tried books.bookTitle = author
and books[bookTitle] = author
, but the result is the same. Any help is appreciated.
推荐答案
Bracket notation 是使用动态密钥名称的正确方法:
Bracket notation is the correct way to use a dynamic key name:
books[bookTitle] = author
但是,您需要使用中间对象:
However, you need to use an intermediate object:
var books = [];
var bookTitle = "Tom Sawyer";
var author = "Mark Twain";
var foo = {};
foo[bookTitle] = author;
books.push(foo);
console.log("books: %s", JSON.stringify(books))
这篇关于JavaScript数组键/值对使用键的文字变量名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文