Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 如何基于AJAX响应动态创建阵列?_Javascript_Jquery_Ajax_Arrays - Fatal编程技术网

Javascript 如何基于AJAX响应动态创建阵列?

Javascript 如何基于AJAX响应动态创建阵列?,javascript,jquery,ajax,arrays,Javascript,Jquery,Ajax,Arrays,如何在获得AJAX响应后动态创建数组 变量data.villages是我的响应 我使用jQuery函数遍历其值: $.each(data.villages, function(key, value) { //Here I have the 2 variables: value.id and value.name //Now I need to build a array where the value.id is the KEY and the content is name

如何在获得AJAX响应后动态创建数组

变量
data.villages
是我的响应

我使用jQuery函数遍历其值:

$.each(data.villages, function(key, value) { 

   //Here I have the 2 variables: value.id and value.name

   //Now I need to build a array where the value.id is the KEY and the content is name : value.name

  //After I need to create an array with all the arrays

});
我的最终数组应该如下所示:

[ 234141 : [{ name: 'vila1', othervariable: 'othervalue' }] ]
var arrayOfObjects = [];

for (var i = 0, var dataLength = data.villages.length; i < dataLength; i++) {
      arrayOfObjects.push(data.villages[i]);
}
我需要通过知道ID来获取名称值(或任何其他属性)…


您还可以向我演示如何通过知道ID来获取此数据的示例吗?

我认为您的最终数组是错误的:

[ 234141 : [{ name: 'vila1', othervariable: 'othervalue' }] ]
必须是:

[ 
    { 234141 : [{ name: 'vila1', othervariable: 'othervalue' }] }
]
即,具有id=234141和值[{name:..}]的对象的数组

您可以通过以下方式实现这一目标:

data.villages = "your returned data array";
var newArray = [ { 234141: [] } ];
$.each(data.villages, function(key, value) {
    newArray[0]['234141'].push({key: value};
}

你可以试试类似的东西

arr = new Array();
arr[value.key] = {var1: 'vila1', var2: 'vila2'};

您只是在存储json

要从json响应创建对象数组,您应该能够执行以下操作:

[ 234141 : [{ name: 'vila1', othervariable: 'othervalue' }] ]
var arrayOfObjects = [];

for (var i = 0, var dataLength = data.villages.length; i < dataLength; i++) {
      arrayOfObjects.push(data.villages[i]);
}
var arrayOfObjects=[];
对于(var i=0,var dataLength=data.villages.length;i
我认为你真正想要的是一个物体。你可以这样反对:

var objectFromJson= {};

for (var i = 0, var dataLength = data.villages.length; i < dataLength; i++) {
      var currentItem = data.villages[i];
      objectFromJson[currentItem.WhatEverPropertyYouWantForTheKey] = currentItem;
}
var objectFromJson={};
对于(var i=0,var dataLength=data.villages.length;i
为什么不首先使用JSON?这是一个无效数组。它是一种“关联数组”吗?就像Rob说的,即使它“看起来”像数组,也不会是。在JavaScript中,数组是零原点索引的,索引是隐式构建的。JavaScript将把您的“数组”视为一个对象,所以不妨将其作为一个对象。然后,按照Diodeus的说法,您可以只发送JSON格式的数据对象,而无需进行任何额外的处理。。。但是,我净有ID值(234141)也设置了DINAMICALL。。。能做到吗?