使用数组值创建对象

我正在尝试创建一个具有多个子对象的对象数组。我有一个包含如下数据的表:


| PARENT   | CHILD  |

---------------------

| 123456   | 123    |

| 123456   | 124    |

| 123456   | 125    |

| 123457   | 345    |

| 123457   | 346    |

| 123457   | 347    |

....

我希望得到一个与此类似的数组:


var arr_nos = { 123456 : [123, 124, 125], 123457 : [345, 346, 347]}


在循环期间,我有这个:


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)]


不负相思意
浏览 103回答 3
3回答

慕尼黑5688855

您可以使用这个循环:var arr_nos = {};$('#table tbody tr').each(function( index,elem ) {&nbsp; &nbsp;var parent_no = $(elem).find('.parent_no').html();&nbsp; &nbsp;var child_id = $(elem).find('.child_id ').html();&nbsp; &nbsp;if(parent_no != '') {&nbsp; &nbsp; &nbsp; if(!arr_nos[parent_no]) arr_nos[parent_no] = [];&nbsp; &nbsp; &nbsp; arr_nos[parent_no].push(child_id);&nbsp; &nbsp;}});console.log(arr_nos);<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><table id="table">&nbsp;<tbody>&nbsp; <tr>&nbsp; &nbsp; <th class='parent_no'>1</th>&nbsp; &nbsp; <th class='child_id'>11</th>&nbsp; </tr>&nbsp; <tr>&nbsp; &nbsp; <th class='parent_no'>2</th>&nbsp; &nbsp; <th class='child_id'>22</th>&nbsp; </tr>&nbsp; <tr>&nbsp; &nbsp; <th class='parent_no'>3</th>&nbsp; &nbsp; <th class='child_id'>33</th>&nbsp; </tr>&nbsp; <tr>&nbsp; &nbsp; <th class='parent_no'>2</th>&nbsp; &nbsp; <th class='child_id'>444</th>&nbsp; </tr>&nbsp; </tbody></table>

交互式爱情

代替:var&nbsp;arr_nos&nbsp;=&nbsp;[] arr_nos.push(parent_no,&nbsp;child)做:let&nbsp;arr_nos&nbsp;=&nbsp;{} arr_nos[parent_no]&nbsp;=&nbsp;[...arr_nos[parent_no],&nbsp;child]

慕容3067478

要获取示例中的数组对象,您必须执行以下操作&nbsp;&nbsp;arr_nos[parent_no]&nbsp;=&nbsp;child并且必须将对象声明为arr_nos&nbsp;=&nbsp;{}代替arr_nos&nbsp;=&nbsp;[]但这是数组的对象,而不是对象的数组。要么你的例子错了,要么你的定义错了我不确定如何获取您的具体示例{123456: [123, 124, 125], 123457: [345, 346, 347]}。您必须指定必须制定什么标准来决定该对象的键是什么。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript