JavaScript数组键/值对使用键的文字变量名称 [英] JavaScript Array of Key/Value Pairs Uses Literal Variable Name for Key

查看:140
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆