19

メソッドを使用してキーと値のペアの配列を作成しようとしていますpushが、予期しない結果が得られます。

console.logこれを印刷します:

書籍: [{"bookTitle":"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たが、結果は同じです。どんな助けでも大歓迎です。

4

2 に答える 2

32

ブラケット表記は、動的キー名を使用する正しい方法です。

books[bookTitle] = author

ただし、中間オブジェクトを使用する必要があります。

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))
于 2013-08-28T15:14:35.650 に答える