javascript - 将对象分配给javascript多维数组中的数组

标签 javascript arrays object multidimensional-array associative-array

下面我给出了我的代码,它是一个调用 php 文件并获取 json 数据的 javascript 函数......一切都很完美,但是当我想将数据添加到多维数组时我遇到了问题......抱歉对于这个菜鸟问题..我不知道它是否可以完成。

我想做什么

  1. 我想在 ajax 调用中检索数据并将此数据保存到数组中
  2. 所以如果我再次需要数据,我不需要再打电话
  3. 所以我想将数据存储在具有两个键的多维数组中
  4. 第一个键是iof数组的长度
  5. 第二个是我的数据的数据类型,可以是“name”、“id”、“description”
  6. 这样做正确吗
  7. 如果不是那么我应该尝试什么...?帮帮我……!!!
  8. 或者我可以将从 ajax 调用成功获得的完整 jsondata 对象数据分配给数组

我的问题新增要求 它的关联数组就像我的 php 数据数组一样

$data[0]["id"] = 1;
$data[0]["name"] = "spomething";
$data[0]["descriptoon"] = "spomething";
$data[0]["image"] = "spomething";

//for second item
$data[1]["id"] = 1;
$data[1]["name"] = "spomething";
$data[1]["descriptoon"] = "spomething";
$data[1]["image"] = "spomething";

所以我想为 javascript 创建相同的数组...对于我从 ajax 获取的每个项目.../并包含到 javascript 数组中...

    $('.searchButton').bind("mouseover", function() {

        var data = $(this).parents('.item').attr('id');   
        var type = $(this).parents('.tab-pane').attr('id'); 
        // dataArray will be global javascript variable because of its needdss... it will be outside the function
        var dataArray = new Array();

        $.ajax({
            type: 'GET',
            url: '<?php echo $this->createUrl("dining/AjaxItemDetailsCall") ?>/data/'+data,
            dataType: 'json',
            async: false,
            success: function(data){  
                var dataArrayLength = dataArray.length;


             dataArray.push({dataArrayLength:data});

         console.log(dataArray[0]);                                              

            }
        });       
    });

现在我根据您的建议更改我的代码,我可以通过 push fn 将数据对象推送到数组中......现在我如何调用该对象的内部数据......!

Object {dataArrayLength: Object}
dataArrayLength: Object
description: "World famous roasted Chicken, avacado, fresh mushrooms, red onions.       Mozzarella cheese and our secret sauce."
id: "11"
images: "/htdocs/kiosk/images/dining/items/pizzas/11.jpg"
name: "Bella Notte Signature Pizza"
price: "4.50"
raters: "10"
ratings: "1"
__proto__: Object
__proto__: Object

这是 console.log(dataArray[0]) 的输出...所以现在我想从中获取“id”、“name”、“description” 我该怎么做这……????/

我的问题解决方案

 success:function(data){    
var dataArrayLength = dataArray.length;

dataArray.push(data);
dataArray.forEach(function(object,index){
console.log(object.id);
console.log(object.name);
console.log(object.description);
console.log(object.image);
console.log(object.ratings);
});

这就是我想做的......

最佳答案

试试这个:

$.ajax({
type:'GET',
url:'<?php echo $this->createUrl("dining/AjaxItemDetailsCall") ?>/data/'+data,
dataType: 'json',
async: false,
success:function(data){
  dataArray = []; // empty it before pushing data into it...
  dataArray.push(data);
}
});       

我相信你可以直接将数据对象压入dataArray。 当您访问这个简单的访问时,它像 dataArray[i].id、dataArray[i].name 等等,用于数据的所有键。

关于javascript - 将对象分配给javascript多维数组中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20545905/

相关文章:

arrays - Opencv 2.4.0 : Load image through unsigned char array

java - 如何从另一个类的另一个数组方法获取数组方法

javascript - 如何将集合添加到 Backbone 中的另一个集合

Javascript function(params) 和 function({ params }),一个函数两种调用类型

object - 分机JS 4 : Custom object property value based on condition

JavaScript:无限循环,或者不是?

javascript - 滚动浏览一系列图像,

Javascript 的 getBBox() 提供了一个比其内容文本高的框。为什么?

javascript - 如何从odd数组中获取字符串?

javascript - Firefox 29 更新后不再显示 Firefox 附加图标