Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays - Fatal编程技术网

Javascript如何获取嵌套在数组中的数组的长度,即对象中的数组长度?

Javascript如何获取嵌套在数组中的数组的长度,即对象中的数组长度?,javascript,arrays,Javascript,Arrays,我试图得到一个数组的长度,在一个数组中,在一个对象中 以下是我正在使用的代码: var experience = document.getElementById('experience'); for (i = 0; i < resumeData.experience.length; i++){ var experienceEntryDiv = document.createElement('div'); experienceEntryDiv.className = "ex

我试图得到一个数组的长度,在一个数组中,在一个对象中

以下是我正在使用的代码:

var experience = document.getElementById('experience');

for (i = 0; i < resumeData.experience.length; i++){
    var experienceEntryDiv = document.createElement('div');
    experienceEntryDiv.className = "experienceEntryDiv";
    var entryTitle = '<h1>'+resumeData.experience[i].title+'</h1>';
    var entryOrganization = '<h2>'+resumeData.experience[i].organization+'</h2>';
    var entryYears = '<h1 class="text-right"><small>'+resumeData.experience[i].startYear+' - '+resumeData.experience[i].endYear+'</small></h1>';

    for (j = 0; j < resumeData.experience.descriptions.length; j++){
        var entryDescription = '<li>'+resumeData.experience[i].descriptions[j]+'</li>';
        entryDescriptions.appendChild(entryDescription);
    }
    var entryHTML = 
        '<div class="entry">'+
        '<div class="row">'+
            '<div class="col-md-9">'+entryTitle+entryOrganization+'</div>'+
            '<div class="col-md-3">'+entryYears+'</div>'+
        '</div>'+
        '<div class="row">'+entryDescriptions+'<hr /></div>'+
        '<hr /></div>'+
        '<br />';
    experienceEntryDiv.innerHTML = entryHTML;
    experience.appendChild(experienceEntryDiv);
    }
我可以使用

但是,当我尝试以“体验”数组中的“描述”数组为目标时:

resumeData.experience.descriptions.length
整个部分消失了

我尝试使用:

resumeData.experience[4].length
这是行不通的

任何帮助都将不胜感激

谢谢

**编辑#2**

在推荐之后,我将代码调整如下,但我只看到

[object HTMLUListElement]
代替应该存在的UL文本。下面是代码现在的样子:

var experience = document.getElementById('experience');
var entryDescriptions = document.createElement('ul');


for (i = 0; i < resumeData.experience.length; i++){
    var experienceEntryDiv = document.createElement('div');
    experienceEntryDiv.className = "experienceEntryDiv";
    var entryTitle = '<h1>'+resumeData.experience[i].title+'</h1>';
    var entryOrganization = '<h2>'+resumeData.experience[i].organization+'</h2>';
    var entryYears = '<h1 class="text-right"><small>'+resumeData.experience[i].startYear+' - '+resumeData.experience[i].endYear+'</small></h1>';

    for (j = 0; j < resumeData.experience[i].descriptions.length; j++){
        descriptionCounts = resumeData.experience[i].descriptions.length;
        console.log(descriptionCounts);
        var entryDescItem = document.createElement('li');
        entryDescItem.className = "entryDescItem";
        var entrydesc = document.createTextNode(resumeData.experience[i].descriptions[j]);
        entryDescItem.appendChild(entrydesc);
        entryDescriptions.appendChild(entryDescItem);
    }
    var entryHTML = 
    '<div class="entry">'+
    '<div class="row">'+
        '<div class="col-md-9">'+entryTitle+entryOrganization+'</div>'+
        '<div class="col-md-3">'+entryYears+'</div>'+
    '</div>'+
    '<div class="row"><ul>'+entryDescriptions+'</ul><hr /></div>'+
    '</div>'+
    '<br />';
    experienceEntryDiv.innerHTML = entryHTML;
    experience.appendChild(experienceEntryDiv);
}
var experience=document.getElementById('experience');
var entryDescriptions=document.createElement('ul');
对于(i=0;i”+entryDescriptions+”
”+ ''+ “
”; experienceEntryDiv.innerHTML=entryHTML; experience.appendChild(experienceEntryDiv); }
您很接近,按索引获取一个元素后,您按名称调用属性,然后询问大小:

for (i = 0; i < resumeData.experience.length; i++) {
    var experienceEntryDiv = document.createElement('div');
    experienceEntryDiv.className = "experienceEntryDiv";
    var entryTitle = '<h1>' + resumeData.experience[i].title + '</h1>';
    var entryOrganization = '<h2>' + resumeData.experience[i].organization + '</h2>';
    var entryYears = '<h1 class="text-right"><small>' + resumeData.experience[i].startYear + ' - ' + resumeData.experience[i].endYear + '</small></h1>';

    for (j = 0; j < resumeData.experience[i].descriptions.length; j++) {

        var entryDescription = '<li>' + resumeData.experience[i].descriptions[j] + '</li>';
        entryDescriptions.appendChild(entryDescription);
    }
}
for(i=0;i';
entryDescription.appendChild(entryDescription);
}
}

我想你忘了用
}

console.log(resumeData.experience[0].descriptions.length); //print 2
您的代码应该如下所示:

    var resumeData = {

        experience: [
    {
        title: 'Title',
        organization: 'Company Name',
        startYear: 2017,
        endYear: 2017,
        descriptions: [
            'Using code stuff',
            'Used more code stuff'
        ]
    },
    {
        title: 'Title',
        organization: 'Company Name',
        startYear: 2017,
        endYear: 2017,
        descriptions: [
            'Using code stuff',
            'Used more code stuff'
        ]
    },
    {
        title: 'Title',
        organization: 'Company Name',
        startYear: 2017,
        endYear: 2017,
        descriptions: [
            'Using code stuff',
            'Used more code stuff'
        ]
    },
    {
        title: 'Title',
        organization: 'Company Name',
        startYear: 2017,
        endYear: 2017,
        descriptions: [
            'Using code stuff',
            'Used more code stuff'
        ]
    },
    {
        title: 'Title',
        organization: 'Company Name',
        startYear: 2017,
        endYear: 2017,
        descriptions: [
            'Using code stuff',
            'Used more code stuff'
        ]
    },
    {
        title: 'Title',
        organization: 'Company Name',
        startYear: 2017,
        endYear: 2017,
        descriptions: [
            'Using code stuff',
            'Used more code stuff'
        ]
    }
]}

resumeData.experience[0].descriptions.length
-experience是一个数组,因此您需要先选择一个元素。
resumeData.experience[此处的索引]。descriptions.length
这不起作用。添加此项后,没有任何条目显示。控制台上的输出是什么?通过编辑的代码,我在控制台中得到:2 2 8 4 3 8 9 9这不起作用。尝试此操作后,所有变量都将从页面中消失。下面是您推荐后的代码:
var experience=document.getElementById('experience')
for(j=0;j
  • '+resumeData.experience[i].descriptions[j]+'
  • }@aarmfield我仔细看看我的答案,然后编辑了它,看一看,让我知道这是否有效谢谢你的澄清。我使用您推荐的方法(console打印正确数量的条目)实现了计数,但是,没有显示描述。我已经更新了我的编辑,以使我发现的内容尽可能接近,但我只看到
    [object HtmlListElement]
    UL应该在哪里。@aarmfield您几乎得到了它,您只需正确使用函数
    appendChild
    ,请查看此链接,您最初的问题已得到回答。现在你的新问题有点棘手,我需要另一种信息,它是混合的,我认为最好的办法是问一个新问题,有新问题。我很乐意提供帮助:)@aarmfield我的意思是,您现在已经正确存储了数据,您只需要很好地显示它;)。别忘了投票并接受答案,我希望我能帮助回答新问题!很抱歉,数据代码的内容比我复制/粘贴的内容要多,因此它的结尾是正确的,只是要向下延伸得多。不过谢谢你的提醒。我仔细检查了一下。
    console.log(resumeData.experience[0].descriptions.length); //print 2
    
        var resumeData = {
    
            experience: [
        {
            title: 'Title',
            organization: 'Company Name',
            startYear: 2017,
            endYear: 2017,
            descriptions: [
                'Using code stuff',
                'Used more code stuff'
            ]
        },
        {
            title: 'Title',
            organization: 'Company Name',
            startYear: 2017,
            endYear: 2017,
            descriptions: [
                'Using code stuff',
                'Used more code stuff'
            ]
        },
        {
            title: 'Title',
            organization: 'Company Name',
            startYear: 2017,
            endYear: 2017,
            descriptions: [
                'Using code stuff',
                'Used more code stuff'
            ]
        },
        {
            title: 'Title',
            organization: 'Company Name',
            startYear: 2017,
            endYear: 2017,
            descriptions: [
                'Using code stuff',
                'Used more code stuff'
            ]
        },
        {
            title: 'Title',
            organization: 'Company Name',
            startYear: 2017,
            endYear: 2017,
            descriptions: [
                'Using code stuff',
                'Used more code stuff'
            ]
        },
        {
            title: 'Title',
            organization: 'Company Name',
            startYear: 2017,
            endYear: 2017,
            descriptions: [
                'Using code stuff',
                'Used more code stuff'
            ]
        }
    ]}