Javascript 使用jQuery动态创建对象

Javascript 使用jQuery动态创建对象,javascript,jquery,arrays,multidimensional-array,Javascript,Jquery,Arrays,Multidimensional Array,我想动态创建一个对象数组 // Example HTML <div id="england"> <div class="property">health</div> <div class="count">3</div> <div class="property">education</div> <div class="count">1</div>

我想动态创建一个对象数组

// Example HTML 
<div id="england">
    <div class="property">health</div>
    <div class="count">3</div>
    <div class="property">education</div>
    <div class="count">1</div>
    <div class="property">entertainment</div>
    <div class="count">12</div>
</div>
<div id="scotland">
    <div class="property">geography</div>
    <div class="count">5</div>
    <div class="property">history</div>
    <div class="count">2</div>
</div>
<div id="wales">
    <div class="property">illustration</div>
    <div class="count">4</div>
    <div class="property">business</div>
    <div class="count">6</div>
    <div class="property">fashion</div>
    <div class="count">3</div>
</div>
该数组将被称为“组”。它将包含未知数量的对象,这些对象是由元素ID确定的组名。每个对象将包含未知数量的属性这些是组属性,它们将由一个div的内部文本确定,它们的值将由另一个div的内部文本确定

我知道如何使用.each和.attr'ID'和.text获取这些值。我就是不知道如何创建对象数组

// Example HTML 
<div id="england">
    <div class="property">health</div>
    <div class="count">3</div>
    <div class="property">education</div>
    <div class="count">1</div>
    <div class="property">entertainment</div>
    <div class="count">12</div>
</div>
<div id="scotland">
    <div class="property">geography</div>
    <div class="count">5</div>
    <div class="property">history</div>
    <div class="count">2</div>
</div>
<div id="wales">
    <div class="property">illustration</div>
    <div class="count">4</div>
    <div class="property">business</div>
    <div class="count">6</div>
    <div class="property">fashion</div>
    <div class="count">3</div>
</div>
可以使用reduce返回object和Array.from将jQuery对象转换为对象数组,以便对其使用reduce方法

//选择body的directdiv子元素,从中创建一个数组,并在其上使用reduce const data=Array.from$'body>div'.reduceFunction,e{ //为数组中的每个div/对象添加属性,其中key是id,value是当前div子数组中的另一个对象 r、 组[e.id]=数组。从$e.children开始 .减速功能ACC、el、i、arr{ //这里我们循环div中的每个元素,如果i%2==0,这意味着它的属性,所以我们将使用它作为key,下一个将用于value 如果i%2==0 acc[el.textContent]=arr[i+1].textContent //回流蓄能器 返回acc }, {} //回流蓄能器 返回r; //第一个reduce的累加器是具有groups属性的对象 },{组:{} console.logdata 健康 3. 教育 1. 娱乐片 12 地理 5. 历史 2. 插图 4. 商业 6. 时尚 3.
如果您想从html创建此文件,请发布您的html。。。。如果你想要js输出,你的输出应该是js格式的。我很快会用一些示例HTML进行编辑。你能不能也展示一下你的对象数组是什么样子的示例,因为上面的内容看起来不像我所知道的任何Javascript数组。你可能会想初始化你的组数组,然后,您需要选择所需的HTML内容。之后,您将需要使用一些数组方法,以您希望的方式在组对象中获取选定的HTML内容。请检查.map、.forEach、spread运算符等的文档以检查示例W。谢谢你,尼纳德,看起来很管用。有很多东西我不认识,因此也不理解。你能解释一下每一行都在做什么吗?那将非常感谢!我才意识到我从未感谢你在评论中添加内容-真的很感激: