Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用var键将[DataObject]添加到现有数组_Javascript_Arrays - Fatal编程技术网

Javascript 使用var键将[DataObject]添加到现有数组

Javascript 使用var键将[DataObject]添加到现有数组,javascript,arrays,Javascript,Arrays,使用Cordova,我尝试获取要添加到数组的对象。我在node JS上使用了以下工具: theData={[varkey]:DataObject} 但我不能让它在我的javascript中以科尔多瓦运行的方式工作 我需要做以下工作: var TownName = 'Auckland', var townData = (JSON Data); theArray = new Array(); theArray[TownName] = townData; var _obj = {}, _somet

使用Cordova,我尝试获取要添加到数组的对象。我在node JS上使用了以下工具:
theData={[varkey]:DataObject}

但我不能让它在我的javascript中以科尔多瓦运行的方式工作

我需要做以下工作:

var TownName = 'Auckland', var townData = (JSON Data);
theArray = new Array();

theArray[TownName] = townData;
var _obj = {}, _something = 'xyz';
_obj[ _something ] = {  ...  }; // json structure
var _array = new array();
_array.push( { .... } ); // insert json structure
我需要能够通过以下方式回拨:

theArray['Auckland'] 
将返回(JSON数据)

但是它不想在数组中存储带有密钥的数据

我也尝试过:

theArray.TownName = townData;
theArray = [{TownName:townData}];
theArray = {[TownName]:townData}];
没有人想要存储数据

有什么建议吗

::编辑::

data.theData = 
"Auckland"[  
   {  
      "username":"pndemoname1",
      "number":"373456",
      "www":"http://373456.pndemoname1",
      "icon":"/imgs/pndemoname1.png"
   },
   {  
      "username":"pndemoname2",
      "number":"373458",
      "www":"http://373458.pndemoname2",
      "icon":"/imgs/pndemoname2.png"
   }

data.town = "Auckland";

townData = new Array();

alert(JSON.stringify(data.theData))//Alerts theData

townData[data.town] = data.theData

alert(townData[townName]) //Alerts undefined
::编辑2:

在处理所有数据的函数中重新定义数组似乎可以使其正常工作


根据我的回答,问题是我假设javascript变量是全局的。

使用对象或对象数组

这样的数据结构:

{
    town1: town1Data,
    town2: town2Data,
}
或更常见的:

[
    {
        name: "Town 1",
        data: {...}
    },
    {
        name: "Town 2",
        data: {...}
    },
]
供参考:


使用对象或对象数组

这样的数据结构:

{
    town1: town1Data,
    town2: town2Data,
}
或更常见的:

[
    {
        name: "Town 1",
        data: {...}
    },
    {
        name: "Town 2",
        data: {...}
    },
]
供参考:


我明白了您要做的事情,首先要确保您使用的是对象而不是数组,以便动态地将属性名称添加到对象中,因此,当您要存储某些内容时,您将执行以下操作:

var TownName = 'Auckland', var townData = (JSON Data);
theArray = new Array();

theArray[TownName] = townData;
var _obj = {}, _something = 'xyz';
_obj[ _something ] = {  ...  }; // json structure
var _array = new array();
_array.push( { .... } ); // insert json structure
您面临的问题是,您希望在数组中指定一个字符串值作为键,这将不起作用

但是,您仍然可以使用定义的数组并执行以下操作:

var TownName = 'Auckland', var townData = (JSON Data);
theArray = new Array();

theArray[TownName] = townData;
var _obj = {}, _something = 'xyz';
_obj[ _something ] = {  ...  }; // json structure
var _array = new array();
_array.push( { .... } ); // insert json structure
记住!通过使用数组,您必须在每次访问密钥时遍历所有值,这是避免出错的最佳做法


祝你好运。

我明白了你要做的事情,首先要确保你使用的是对象而不是数组,从而动态地向你的对象添加属性名,所以当你想存储一些东西时,你将执行以下操作:

var TownName = 'Auckland', var townData = (JSON Data);
theArray = new Array();

theArray[TownName] = townData;
var _obj = {}, _something = 'xyz';
_obj[ _something ] = {  ...  }; // json structure
var _array = new array();
_array.push( { .... } ); // insert json structure
您面临的问题是,您希望在数组中指定一个字符串值作为键,这将不起作用

但是,您仍然可以使用定义的数组并执行以下操作:

var TownName = 'Auckland', var townData = (JSON Data);
theArray = new Array();

theArray[TownName] = townData;
var _obj = {}, _something = 'xyz';
_obj[ _something ] = {  ...  }; // json structure
var _array = new array();
_array.push( { .... } ); // insert json structure
记住!通过使用数组,您必须在每次访问密钥时遍历所有值,这是避免出错的最佳做法


祝你好运。

问题在于我没有在我试图添加信息的函数中定义数组


我假设var是全局的(太多PHP)

问题是我没有在我试图添加信息的函数中定义数组


我假设var是全局的(太多的PHP)

为什么要使用
数组来保存不需要索引的键值对?您可以简单地使用
对象
。将添加更多城镇,我以其中一个为例。最后,它将全部存储起来,以便以后检索,而数组将使任务更易于存储,而不是存储大量的对象不确定我是否遗漏了什么,但这是可行的:
JSON数据
是否与您问题中的
数据
相同?JSON数据是towndata的变量为什么要使用
数组
来保存不需要索引的键值对?您可以简单地使用
对象
。将添加更多城镇,我以其中一个为例。最后,它将全部存储起来,以便以后检索,而数组将使任务更易于存储,而不是存储大量的对象不确定我是否遗漏了什么,但这是可行的:
JSON数据
是否与您问题中的数据
相同?JSON数据是TownDataArray的变量,仅用于数字存储。字符串将为数组指定属性名,但如果要循环数组,则无法访问该属性名,这会破坏整个目的。请看:阵列仅用于数字存储。字符串将为数组指定属性名,但如果要循环数组,则无法访问该属性名,这会破坏整个目的。看看: