循环数组,位于对象内部

时间:2017-03-22 03:53:01

标签: javascript arrays loops javascript-objects

我有一个名为myInfo的对象

var myInfo = {
            skills: ['PHP', 'Java', 'JavaScript', 'HTML', 'CSS', 'jQuery'],
            languages: ['English', 'German']
            }

我想循环遍历skills对象内myInfo数组内的字符串。我试过这个但似乎不起作用

        var mySkills = '';
        for (i=0, i < myInfo.skills.length, i++) {
          mySkills += 'li' + myInfo.skills + 'li';
        }
        document.write(mySkills);

任何帮助将不胜感激。也许我在代码的某个地方出了问题。

4 个答案:

答案 0 :(得分:2)

我会编写一个创建li

的例程
function li(content) {
  const elt = document.createElement('li');
  elt.innerHTML = content;
  return elt;
}

现在,创建一个文档片段,根据数组将所有li放入其中:

function makeLis(contents) {
  const frag = document.createDocumentFragment();

  contents.forEach(content => frag.appendChild(li(content));
  return frag;
}

编写一个函数来创建ul元素以将li放入:

function makeUl(contents) {
  const ul = document.createElement('ul');

  ul.appendChild(makeLis(contents));
  return ul;
}

现在您可以将其写入您的文档:

document.getElementById('target').appendChild(makeUl(contents));

答案 1 :(得分:1)

通过索引获取技能值

0

答案 2 :(得分:1)

您可以通过index []访问Object Array中的单个对象。 对象基于0索引。

skills: ['PHP', 'Java', 'JavaScript', 'HTML', 'CSS', 'jQuery'],

PHP是对象数组的开始,位于0

mySkills += '<li>' + myInfo.skills[i] + '</li>';
每次传递

i都会递增,直到

for(i=0; i < myInfo.skills.length, i++) {

i大于数组的length,0,1,2,3,4,5。

初始化变量时需要使用分号。

答案 3 :(得分:0)

除非您需要访问索引,否则可以使用for.. of

&#13;
&#13;
var myInfo = {
            skills: ['PHP', 'Java', 'JavaScript', 'HTML', 'CSS', 'jQuery'],
            languages: ['English', 'German']
            }
            
for (let skill of myInfo.skills)
{
  console.log(skill);
}
&#13;
&#13;
&#13;

如果您确实需要访问索引并且不想写长i=0; i < length; i++,则可以使用for... in代替

&#13;
&#13;
var myInfo = {
            skills: ['PHP', 'Java', 'JavaScript', 'HTML', 'CSS', 'jQuery'],
            languages: ['English', 'German']
            }
            
for (let index in myInfo.skills)
{
  console.log(myInfo.skills[index], "at index", index);
}
&#13;
&#13;
&#13;