我很难解决这个问题。我想比较两个数组的内容。如果它们是===我想运行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>
<% } %>
<% } %>
<% } %>
答案 0 :(得分:1)
你的平等检查没问题,问题就出现了,因为你总是在else语句中记录一些东西。
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;
请参阅以下代码的输出,您需要确定所需的输出并相应地调整循环