Javascript 使用数组值创建对象
我正在尝试创建一个包含多个子对象的对象数组。我有一个包含如下数据的表:Javascript 使用数组值创建对象,javascript,arrays,Javascript,Arrays,我正在尝试创建一个包含多个子对象的对象数组。我有一个包含如下数据的表: | PARENT | CHILD | --------------------- | 123456 | 123 | | 123456 | 124 | | 123456 | 125 | | 123457 | 345 | | 123457 | 346 | | 123457 | 347 | .... 我希望得到与此类似的数组: var arr_nos={12345
| PARENT | CHILD |
---------------------
| 123456 | 123 |
| 123456 | 124 |
| 123456 | 125 |
| 123457 | 345 |
| 123457 | 346 |
| 123457 | 347 |
....
我希望得到与此类似的数组:
var arr_nos={123456:[123124125],123457:[34534636347]}
在循环过程中,我有:
var arr_nos = [];
$('#table tbody tr').each(function( index ) {
var parent_no = elem.find('.parent_no').html();
var child_id = elem.find('.child_id ').html();
if(parent_no != '') {
child = [
child_id
]
arr_nos.push(parent_no, child);
}
});
但这导致:
["123456", Array(1), "123456", Array(1),"123456", Array(1), "123457", Array(1), "123457", Array(1), "123457", Array(1)]
要获得示例中的数组对象,必须执行以下操作
arr_nos[parent_no] = child
并且必须将对象声明为
arr_nos = {}
而不是
arr_nos = []
但这是一个数组对象,而不是一个对象数组。要么你的例子错了,要么你的定义错了 我不知道如何使用
{123456:[123124125],123457:[34534636347]}
获得您的具体示例。您必须指定您必须制定的标准,以决定此对象的键是什么。而不是:
var arr_nos = []
arr_nos.push(parent_no, child)
做:
您可以使用以下循环:
var arr_nos={};
$('#table tbody tr')。每个(函数(索引,元素){
var parent_no=$(elem).find('.parent_no').html();
var child_id=$(elem.find('.child_id').html();
如果(父项编号!=''){
如果(!arr_nos[parent_no])arr_nos[parent_no]=[];
arr_nos[父项编号]。推送(子项id);
}
});
控制台日志(arr_nos)代码>
1.
11
2.
22
3.
33
2.
444
所以你想得到的例子是数组的对象你说你想得到对象,但你创建了数组并将值推送到它你的标题说你想要一个多维数组,但你的示例表明它只是一个数组中有值的对象。那是什么?是的,我的标题不正确。这个例子就是我想说的。这能回答你的问题吗?这更接近,但只添加了一个子项。@JudsonCooper现在检查将有多个具有相同id(父项\否)的父项。我将用一个例子来编辑这个问题。这正是我所需要的。谢谢大家!@朱德森·库珀:你的惠康:)别忘了投票,我的朋友。
let arr_nos = {}
arr_nos[parent_no] = [...arr_nos[parent_no], child]