用javascript构建多维数组
我正在检索一个Json数据集,需要构建一个名为“arrProducts”的javascript数组。我下面的代码是错误的,但在正确的行上。有人能帮忙吗用javascript构建多维数组,javascript,jquery,arrays,loops,Javascript,Jquery,Arrays,Loops,我正在检索一个Json数据集,需要构建一个名为“arrProducts”的javascript数组。我下面的代码是错误的,但在正确的行上。有人能帮忙吗 var allProducts = $.get("http://localhost:8888/web/app_dev.php/api/v1/search/search.json", function(data) { var productsArray = data.products; var arrProducts = '';
var allProducts = $.get("http://localhost:8888/web/app_dev.php/api/v1/search/search.json",
function(data) {
var productsArray = data.products;
var arrProducts = '';
$.each(productsArray, function(index, product) {
arrProducts['name'] = product.name;
arrProducts['title'] = product.title;
arrProducts['price'] = product.price;
});
});
您只需使用以下代码创建一个数组:
var arrProducts = [];
代码的其余部分将满足您的目的
但是,正如注释所述,这将创建一个三元素关联数组,该数组将在每个iterarion中被覆盖。你需要重新思考你的结构:多维数组?对象数组?这应该满足您的要求:
var allProducts = $.get("http://localhost:8888/web/app_dev.php/api/v1/search/search.json",
function(data) {
var productsArray = data.products;
var arrProducts = productsArray;
});
productsArray
已经是您尝试构建的格式,因此您应该直接使用data.products
var allProducts = $.get("http://localhost:8888/web/app_dev.php/api/v1/search/search.json",
function(data) {
console.log(data.products);
});
正如Kevin B所指出的,看起来data.products已经是一组您将要使用的格式的对象,因此这种“转换”似乎毫无意义。这怎么样
var arr;
var allProducts = $.getJSON("http://localhost:8888/web/app_dev.php/api/v1/search/search.json",
function(data) {
arr = jQuery.makeArray(data);
});
注:
您需要使用getJSON方法,以便最终得到一个已解析的对象,然后可以在回调中使用该对象。至于makeArray方法您缺少一个结束语
“
在您的URL@freefaller我认为这是一个输入错误。你不能使用JSON对象已经有的东西吗?你是通过一些东西循环的,所以它就像数组一样。arrProducts
与data.products
有何不同?arrProducts需要是一个数组,并且需要为它提供包含名称、标题和价格的对象。productsArray已经是您想要的格式。感谢您澄清这是一个打字错误,richelliot,我将相应地修改您的问题@展望未来,我完全理解你的立场,我同意这不太可能成为主要问题。我知道这不是一个“深入的讨论”,但这只是我想提出的改变打字错误的一般概念。啊,好吧,生活还在继续:-)不,不会的,你会一遍又一遍地写同一个索引。是的,这是毫无意义的。我认为通过循环遍历数据,它可能会阻止它成为对象,但不幸的是,它仍然是对象。如何将其转换为sting数组?很简单。用法:JSON.stringify(yourray);是的,这是毫无意义的。我认为通过循环遍历数据,它可能会阻止它成为对象,但不幸的是,它仍然是对象。如何将其转换为sting数组?@richelliot对象就是您所称的字符串数组。JavaScript没有关联数组,它有对象和数组,数组可以包含对象。
var arr;
var allProducts = $.getJSON("http://localhost:8888/web/app_dev.php/api/v1/search/search.json",
function(data) {
arr = jQuery.makeArray(data);
});