例如,我有这个动态数组,它可以是任意长度,但是给了我这个数组的两个值。

var arrName = ["firstName","lastName"];


而且我必须为此动态数组制作一个具有确切给定值的json变量。这是我的方法

方法1:错误意外类型'['

var jsonValues = {arrName[0] : "Mark", arrName[1]: "Collins"}


方法2:有效,但在控制台中键入“ jsonValues”时不显示json内容,而是获取Array类型。我不确定这是否可以接受,因为我想对其进行JSON.stringify并将其通过ajax传递给php服务器。

var jsonValues = [{}];
jsonValues[arrName[0]] = "Jeffrey";
jsonValues[arrName[1]] = "Douglas";

最佳答案

你要

var jsonValues = {};
jsonValues[arrName[0]] = "Jeffrey";
jsonValues[arrName[1]] = "Douglas";


有关更通用的版本,请参见Underscore中的object函数。

在大多数浏览器尚不支持的ES6中,还有一种语法可以满足您的最初期望:

var jsonValues = {
  [arrName[0]]: "Jeffrey",
  [arrName[1]]: "Douglas",
};


MDN Reference

10-04 12:36