将数组推入另一个数组 - 嵌套

时间:2018-02-19 10:02:19

标签: javascript arrays

我正在创建一个商店。它的工作方式是当我点击“添加到购物车”时,我运行一个获取按钮ID的函数。从该ID,您可以计算产品的名称,获取成本,数量等。为简单起见,这是功能代码:

function getID(a){

    var id = a.substring(0, a.length - 4);
    var id_quant = document.getElementById(id + '_val').value;
    var id_name = document.getElementById(id + '_nme').innerHTML;
    console.log(id + " " + id_quant + " " + id_name);   

}    

您可能会注意到我从this.id删除了最后4位数字,这是因为当我运行PHP以回显所有结果时,我将button_id等同于uid来自数据库,与_btn连接。

我想要做的是推入数组,或者使用JSON。

我想象的是一个巢阵列,如:array[uid][cost]array[uid][name]。我只是不确定如何做到这一点。

应该注意的是,在函数中,a实际上是this.id

<button id='1_btn' onclick='getID(this.id)'></button>

我在函数var array = []上面声明了一个数组。

任何关于如何推巢的帮助都会很棒。

2 个答案:

答案 0 :(得分:4)

  

我想要做的是将其推入数组或使用   JSON。

您需要使用对象

var obj = {};

并将此obj中的值设置为

function getID(a){
    var id = a.substring(0, a.length - 4);
    var id_quant = document.getElementById(id + '_val').value;
    var id_name = document.getElementById(id + '_nme').innerHTML;
    obj[ id ] = { quantity : id_quant, name : id_name }; //observe this line
    console.log(id + " " + id_quant + " " + id_name);   
}

答案 1 :(得分:1)

而不是array您应该有object

var bucket = {};

bucket[someuid] = {
"cost": 500,
"name": "Some Item" 
}

现在您可以通过

来访问它
console.log(bucket[someuid]);

迭代然后很简单

for (item in bucket){ console.log(item['name'], item['cost']) }