[英]Javascript function returns false when it should be true from an if statement?
[英]Javascript function returns true when it should return false
我有一個函數,檢查輸入數組中是否存在param。 它應該返回false但不返回false。
{
...
validation: params => {
const valid = ["valid", "inputs"];
valid.forEach( v=> {
if (!params.hasOwnProperty(v)) {
return false;
}
});
return true;
}
因此,即使if語句確實評估為true,它也永遠不會返回false。 無論如何,此函數始終返回true。
作為替代方案,使用正確的工具來完成工作。 如果要檢查數組的每個成員是否具有某個屬性,請使用以下every
屬性:
validation: params => {
const valid = ["valid", "inputs"];
return valid.every(v => params.hasOwnProperty(v));
}
你return
是從forEach
的回調函數返回而不是main函數。 如果沒有throw
東西,你無法從forEach
提前返回。 如果你想早點返回,請使用for...of
循環:
validation: params => {
const valid = ["valid", "inputs"];
for (v of valid) {
if (!params.hasOwnProperty(v)) {
return false; // this returns from the main function
}
};
return true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.