【问题标题】:jquery multi dimensional array - one parent array with three child arraysjquery 多维数组 - 一个父数组和三个子数组
【发布时间】:2014-02-10 23:10:19
【问题描述】:

我的小提琴:http://jsfiddle.net/gVwPw/3/

我已经搜索并找到了:

但是我仍然不能做我正在尝试的事情。

我在网上建了一个订单入口页面,他们可以动态的为订单添加新行。每个新行都应该是一个包含详细信息的数组,就像这样(我在这里使用 PHP 作为数组格式,因为我不知道正确的 javascript 格式)

Array
(
    [order_line_1] => Array
        (
            [sku] => afd433
            [uom] => CS
            [quantity] => 5
        )
)

我无法以这种方式存储它。我试过很多方法。救命?!

【问题讨论】:

    标签: javascript jquery arrays multidimensional-array


    【解决方案1】:

    好吧,JavaScript 绝对支持多维数组。有几种方法可以与数组进行交互。

    您可以像这样将其他数组推送到原始数组中:

    originalArray.push(newArray);
    

    您可以像这样显式设置数组的索引:

    originalArray[1] = newArray;
    

    如果您将对象用作 PHP 关联数组的模拟对象:

    orders['orderLine1'] = newArray;
    

    我个人会使用 push,因为它可以智能地将元素添加到数组中而不会破坏任何内容并保持“先进先出”的顺序。

    类似这样的:

    // This array exists above in your scope
    var orders = [];
    
    // Whenever you are creating a new order line
    var orderLine = [];
    orderLine.push({
        sku: 'afd433',
        uom: 'CS',
        quantity: 5
    });
    
    // Whenever you are finished adding line-items to your order line
    orders.push(orderLine1);
    

    【讨论】:

      【解决方案2】:

      在 JavaScript 中最简单的方法是保留外部数组,但要使数组的每个元素都是标准 JavaScript 对象。语法如下所示:

      var arr = [
          { "sku": afd433, // assuming that afd433 is a variable, not a string
            "uom": "CS", // assuming that CS is a string, not a variable
            "quantity": 5
          } // if you have more elements, add a , then a new object with the {} syntax
      ];
      

      间距无关紧要;以下是等效的并且更简洁: var arr = [{"sku": afd433, "uom": "CS", "quantity": 5}];

      如果数组只包含一个元素,它们就没有多大意义,所以我会让它看起来像多个元素:

      var arr = [
          {"sku": afd433, "uom": "CS", "quantity": 5},
          {"sku": afd334, "uom": "SC", "quantity": 7},
          {"sku": afd434, "uom": "SS", "quantity": 2}
      ];
      

      注意var x = []是创建数组的简写,你可以通过列出元素来初始化它。最基本的例子是var digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]{} 语法是创建 JavaScript 动态对象的简写,其中任何参数都可以使用上述语法设置为任何值。

      【讨论】:

      • 问题是我需要在循环中一点一点的更新。每个值都将在第一个值之后添加。我现在要通过一些修改来测试你的代码。
      • 创建阵列后,请使用 daekano 的推送到阵列的建议。我可以在我的答案中添加一个示例,但它不会添加任何 daekano 没有说过的东西。
      猜你喜欢
      • 2017-10-12
      • 2021-05-06
      • 2020-07-08
      • 2021-02-21
      • 1970-01-01
      • 2019-06-13
      • 2011-12-12
      • 2012-10-18
      • 2017-04-09
      相关资源
      最近更新 更多