使用嵌套for循环时遇到问题

时间:2017-03-03 13:33:23

标签: javascript node.js express for-loop ejs

我很难解决这个问题。我想比较两个数组的内容。如果它们是===我想运行if语句,否则发生else语句。到目前为止这是有效的,但if和else会发生,而不仅仅是其中的一个。

<% for (var i = 0; i < match.interests.length; i++) { %>
    <% for (var j = 0; j < user.interests.length; j++) { %>
        <% if (match.interests[i] === user.interests[j]) { %>
            <li class="tag positive"><%= match.interests[i] %></li>
        <% } else {%>
            <li class="tag"><%= match.interests[i] %></li>
        <% } %>
    <% } %>
<% } %>

1 个答案:

答案 0 :(得分:1)

你的平等检查没问题,问题就出现了,因为你总是在else语句中记录一些东西。

&#13;
&#13;
console.clear();

const match = {
  interests: [
    'Code',
    'JS'
  ],
};

const user = {
  interests: [
    'Code',
    'Apples',
    'Skiing'
  ],
};

const output = [];

for (let i = 0; i < match.interests.length; i++) {
  for (let j = 0; j < user.interests.length; j++) {
    console.log('loop')
    if (match.interests[i] === user.interests[j]) {
      console.log('MATCH');
      output.push(match.interests[i]);
    } else {
      console.log('DOESN\'T MATCH');
      output.push(match.interests[i]);
    }
  }
}

console.log(output);
&#13;
&#13;
&#13;

请参阅以下代码的输出,您需要确定所需的输出并相应地调整循环