我正在循环一个对象,有条件地我正在安慰结果。但我得到了所有3个结果,而不是只得到2.我的代码出了什么问题?
有什么建议吗?
我的代码:
var processModules = function (mData) {
var lcalmData = obj = {'content':'new content','navigation':'newNavigation','form':'newform'}; var title;
$('body').append(
$.each(lcalmData, function (i,val) {
title = (i === 'content' || i === 'navigation') ? $('<div />') : i === 'form' ? $('<form />') : null;
return title;
} )
)
}
答案 0 :(得分:3)
这一行存在问题:
val === 'content' || 'navigation'
我想您是要检查val
是否等于其中一个值? )但它不会这样工作:由于===
运算符优先级高于||
一,它与...基本相同...
(val === 'content') || 'navigation'
...换句话说,总是一个真正的价值。
你想要的东西可以像......一样简单地重写。
... (i === 'content' || i === 'navigation')
...因为它是应该检查的索引(键),而不是值。
答案 1 :(得分:1)
您使用的是val而不是i,即属性名称而不是值
答案 2 :(得分:0)
你需要这样做:
var title = ( val === 'content' || val === 'navigation' ) ? val.type : null;
可能不需要括号()。您现在正在测试val ==='content'或者'navigation'是否为'true'。事实上,后者总是如此。