Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:如何从字符串创建嵌套数组_Javascript_Html_Arrays_Multidimensional Array_Cheerio - Fatal编程技术网

JavaScript:如何从字符串创建嵌套数组

JavaScript:如何从字符串创建嵌套数组,javascript,html,arrays,multidimensional-array,cheerio,Javascript,Html,Arrays,Multidimensional Array,Cheerio,我有以下代码,需要创建一个嵌套数组,从中生成一个多级有序列表 var htmlContent2 = '<div id="header"><p class="headpara">Header content</p><p class="one">Lorem ipsum dolor sit amet, consectetur:</p><p class="two">Perferendis iure doloremque iusto

我有以下代码,需要创建一个嵌套数组,从中生成一个多级有序列表

var htmlContent2 = '<div id="header"><p class="headpara">Header content</p><p class="one">Lorem ipsum dolor sit amet, consectetur:</p><p class="two">Perferendis iure doloremque iusto adipisci facilis.</p><p class="two">Asperiores impedit officiis cumque molestias at rerum consequuntur!</p><p class="one">More dummy text.</p> <p class="two">Additional dummy text: </p> <p class="three">Asperiores impedit officiis.</p> <p class="three">Lolestiae asperiores ad repellat est obcaecati.</p> <p class="two">Lorem ipsum dolor sit amet.</p> <p class="notelem">Dignissimos maiores facere consequuntur quod.</p> <p class="one">Ea  excepturi aperiam.</p></div>';

var $ = cheerio.load(htmlContent2);
var allList = [];
var manipulatedContent = $('#header').each(function (i, elem) {
    var level1 = [],
        level2 = [],
        level3 = [],
        level4 = [],        
        item1 = $('.one').html(),
        item2 = $('.two').html(),
        item3 = $('.three').html(),
        item4 = $('.notelem').html();
    level1[i] = item1;
    level2[i] = item2;
    level3[i] = item3;
    level4[i] = item4;
    allList.push(item1, [item2, [item3, item4]]);

});
console.dir(allList);
但是期望的结果是:

['Lorem ipsum dolor sit amet, consectetur:',
    ['Perferendis iure doloremque iusto adipisci facilis.',
        ['Asperiores impedit officiis.',
            ['Dignissimos maiores facere consequuntur quod.']]]];
我如何使用JavaScript或任何更好的cheerio.js方法实现这一点

我的目标是从格式不好的html中创建嵌套的有序列表,如示例内容(htmlContent2)所示

非常感谢您的帮助。

正如@Chris G所评论的:

//var htmlContent2='';
//var$=cheerio.load(htmlContent2);
var allList=[];
var-manufactedcontent=$('#header')。每个(函数(i,elem){
var level1=[],
级别2=[],
三级=[],
级别4=[],
item1=$('.one').html(),
item2=$('.two').html(),
item3=$('.three').html(),
item4=$('.notelem').html();
级别1[i]=项目1;
第2级[i]=第2项;
第3级[i]=第3项;
第4级[i]=第4项;
push(item1、[item2、[item3、[item4]]);
});
console.dir(allList)


标题内容

Lorem ipsum door sit amet,concetetur:

在会议上,执行会议议程。

在会议上阻碍官方的会议

更多虚拟文本。

更多虚拟文本:

Asperiores impedit officiis.

Lolestiae Asperiores ad repellat est obcaecati.

Lorem ipsum door sit amet.

重要人物的脸上有消费习惯。

Ea excepturi aperiam.

看起来您需要做的只是更改
allList.push(item1、[item2、[item3、item4])
to
allList.push(item1、[item2、[item3、[item4]])当我使用上述代码时,生成的内容不是我所需要的。我得到以下信息:[“Lorem ipsum door sit amet,concetetur:”,[“Perferendis iure doloremque iusto adipisci facilis.”,[“Asperiores impedit officiis.”,[Object]]]]我正在使用cheerio.js生成嵌套数组。对我来说效果很好。请参阅chester的答案以了解它是否有效。我将尝试使用常规jQuery,目前我正在使用cheerio.js生成数组。在最后一个元素中,输出类似于[Object]]]],而不是内容。这只是由
console.dir()
生成的输出,它显然在某个深度处停止,以避免复杂对象的大量输出。实际对象确实包含您需要的数据结构。您好,切斯特,生成的数组似乎无效。@Manou,不确定您的意思?这和你的问题中所包含的期望结果是一样的。我刚刚再次检查,它实际上工作得很好。谢谢你的帮助。
['Lorem ipsum dolor sit amet, consectetur:',
    ['Perferendis iure doloremque iusto adipisci facilis.',
        ['Asperiores impedit officiis.',
            ['Dignissimos maiores facere consequuntur quod.']]]];