Это Boolean сравнение всегда возвращает false, но оно сравнивает false == false в моей getColumnsFunction(). Он должен возвращать истину, и я не знаю, почему. Вот код:JavaScript boolean compare всегда терпит неудачу
function getModelColumns(exlude, modelName){
var model = Ext.ModelManager.getModel(modelName).create();
var fields = model.fields.items;
for(var x in fields){
console.log(inArray(exlude, fields[x].name == false),
'boolean_compare',
inArray(exlude, fields[x].name));
}
}
function inArray(arr,val){
for(var x in arr){
if(arr[x] === val)
return true;
}
return false;
}
Вот что в console.log() для всех полей в том, что для цикла:
false "boolean_compare" false
Они оба равны ложно, почему они чёрт делает это логический сравнение return false?
Edit: забыл «(» он должен быть inArray (Exlude, поля [х] .name) == ложный
Не используйте 'for ... in' для перебора элементов массива. Вместо этого используйте регулярный цикл 'for'. –
Где сравнивается ваше сравнение? – FabioCosta
@FabioCosta: В строке 'console.log':' fields [x] .name == false' и 'fields [x] .name'. –