繁体   English   中英

如何基于AJAX响应动态创建ARRAY?

[英]How to dynamically create a ARRAY based on a AJAX response?

获取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' }] ]

我需要通过知道ID来获取名称值(或任何其他属性)....

您是否还可以通过了解ID来向我展示如何获取此数据的示例?

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

var arrayOfObjects = [];

for (var i = 0, var dataLength = data.villages.length; i < dataLength; i++) {
      arrayOfObjects.push(data.villages[i]);
}

我认为你真正想要的是一个对象。 你可以像这样反对:

var objectFromJson= {};

for (var i = 0, var dataLength = data.villages.length; i < dataLength; i++) {
      var currentItem = data.villages[i];
      objectFromJson[currentItem.WhatEverPropertyYouWantForTheKey] = currentItem;
}

我认为你的最终阵列是错误的:

[ 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM