【问题标题】:Foreach Duplicating Results?Foreach 重复结果?
【发布时间】:2018-02-01 11:07:06
【问题描述】:

我从 Microsoft Recognition Services 的人脸检测 API 获取 JSON 并显示结果。我已经创建了几个结果,这是唯一一个可折叠四倍的结果。

JSON 对象的大小为 9,从 0 ~ 8。它正在创建 50 多个对象,每个人 5 个。

正确的做法是为每个人创建一个可折叠的,这将给出 9 个结果。

代码:

function GenerateAttributes__(objJSON){
  var count = 0;
  for(obj in objJSON){
    for(hair in objJSON[obj].faceAttributes.hair.hairColor){
      document.getElementById('face-attributes-information').innerHTML +=

      '<ul class="collapsible" data-collapsible="accordion">' +
        '<li>' +
          '<div class="collapsible-header"><i class="fa fa-id-card-o" aria-hidden="true"></i><strong>People (2)</strong></div>' +

          '<div class="collapsible-body white">' +
            '<ul class="collection">' +
              '<li class="collection-item avatar">' +
                '<img class="responsive-img circle pink" src="img/neoris-icons/moustache.png">' +
                '<span class="title title-collection-content-information">Facial Appearance</span>' +
                '<p><strong>Moustache</strong></p>' +
                '<a href="#!" class="secondary-content">' +
                  '<span class="new black badge" data-badge-caption=" "><strong>1.0 %</strong></span>' +
                  '<span class="new black badge" data-badge-caption=" "><strong>Confidence </strong></span>' +
                '</a>' +
              '</li>' +

              '<li class="collection-item avatar">' +
                '<i class="fa fa-question-circle circle red" aria-hidden="true"></i>' +
                '<img class="responsive-img circle pink" src="img/neoris-icons/beard.png">' +
                '<p><strong>Beard</strong></p>' +
                '<a href="#!" class="secondary-content">' +
                  '<span class="new black badge" data-badge-caption=" "><strong>1.0 %</strong></span>' +
                  '<span class="new black badge" data-badge-caption=" "><strong>Confidence </strong></span>' +
                '</a>' +
              '</li>' +

              '<li class="collection-item avatar">' +
                '<img class="responsive-img circle pink" src="img/neoris-icons/sideburns.png">' +
                '<span class="title title-collection-content-information">Facial Appearance</span>' +
                '<p><strong>Sideburns</strong></p>' +
                '<a href="#!" class="secondary-content">' +
                  '<span class="new black badge" data-badge-caption=" "><strong>1.0 %</strong></span>' +
                  '<span class="new black badge" data-badge-caption=" "><strong>Confidence </strong></span>' +
                '</a>' +
              '</li>' +
            '</ul>' +
          '</div>' +

          '<div class="collapsible-body white">' +
            '<ul class="collection">' +
              '<li class="collection-item avatar">' +
                '<img class="responsive-img circle brown" src="img/neoris-icons/female-hair.png">' +
                '<span class="title title-collection-content-information">Hair Color</span>' +
                '<p><strong class="brown-text">Brown</strong></p>' +
                '<a href="#!" class="secondary-content">' +
                  '<span class="new brown badge" data-badge-caption=" "><strong>1.0 %</strong></span>' +
                  '<span class="new brown badge" data-badge-caption=" "><strong>Confidence </strong></span>' +
                '</a>' +
              '</li>' +

              '<li class="collection-item avatar">' +
                '<img class="responsive-img circle yellow accent-4" src="img/neoris-icons/female-hair.png">' +
                '<span class="title title-collection-content-information">Hair Color</span>' +
                '<p><strong class="yellow-text">Blond</strong></p>' +
                '<a href="#!" class="secondary-content">' +
                  '<span class="new yellow accent-4 badge" data-badge-caption=" "><strong>1.0 %</strong></span>' +
                  '<span class="new yellow accent-4 badge" data-badge-caption=" "><strong>Confidence </strong></span>' +
                '</a>' +
              '</li>' +

              '<li class="collection-item avatar">' +
                '<img class="responsive-img circle black" src="img/neoris-icons/female-hair.png">' +
                '<span class="title title-collection-content-information">Hair Color</span>' +
                '<p><strong class="black-text">Black</strong></p>' +
                '<a href="#!" class="secondary-content">' +
                  '<span class="new black badge" data-badge-caption=" "><strong>1.0 %</strong></span>' +
                  '<span class="new black badge" data-badge-caption=" "><strong>Confidence </strong></span>' +
                '</a>' +
              '</li>' +

              '<li class="collection-item avatar">' +
                '<img class="responsive-img circle teal" src="img/neoris-icons/female-hair.png">' +
                '<span class="title title-collection-content-information">Hair Color</span>' +
                '<p><strong class="teal-text">Other</strong></p>' +
                '<a href="#!" class="secondary-content">' +
                  '<span class="new badge" data-badge-caption=" "><strong>1.0 %</strong></span>' +
                  '<span class="new badge" data-badge-caption=" "><strong>Confidence </strong></span>' +
                '</a>' +
              '</li>' +

              '<li class="collection-item avatar">' +
                '<img class="responsive-img circle grey" src="img/neoris-icons/female-hair.png">' +
                '<span class="title title-collection-content-information">Hair Color</span>' +
                '<p><strong class="grey-text">Gray</strong></p>' +
                '<a href="#!" class="secondary-content">' +
                  '<span class="new grey badge" data-badge-caption=" "><strong>1.0 %</strong></span>' +
                  '<span class="new grey badge" data-badge-caption=" "><strong>Confidence </strong></span>' +
                '</a>' +
              '</li>' +

              '<li class="collection-item avatar">' +
                '<img class="responsive-img circle red" src="img/neoris-icons/female-hair.png">' +
                '<span class="title title-collection-content-information">Hair Color</span>' +
                '<p><strong class="red-text">Red</strong></p>' +
                '<a href="#!" class="secondary-content">' +
                  '<span class="new red badge" data-badge-caption=" "><strong>1.0 %</strong></span>' +
                  '<span class="new red badge" data-badge-caption=" "><strong>Confidence </strong></span>' +
                '</a>' +
              '</li>' +

            '</ul>' +
          '</div>' +

        '</li>' +
      '</ul>';

      console.log("COUNT OBJ: ", count++);
    }
  }
}

【问题讨论】:

  • objJSON[obj].faceAttributes.hair.hairColor 是什么样的?如果没有看到完整的 JSON 结构,这个问题很难回答。此外,您不应该使用for..in 来迭代数组或对象。采用不同的策略会更安全:stackoverflow.com/questions/500504/…
  • 好像 for()for()count++ 所以 5 * hairccolor count?

标签: javascript json face-recognition


【解决方案1】:

你在一个循环中交互另一个循环,他的行为是 1 * (n), 2 * (n), 3 * (n)。 检查你的逻辑

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 2014-10-02
    • 2017-09-11
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    相关资源
    最近更新 更多