function filterArray(array, callback) {
const newArray = [];
for (let i = 0; i < array.length; i = 1) {
if (callback(array[i])) newArray.push(array[i]);
}
return newArray;
}
我對語法感到困惑。通常我到目前為止看到的是
if (condition) {
// code to be executed
}
其中條件是一些布爾陳述句,如果條件 = true,它將運行顯示的代碼。
但是,在這個 if 陳述句中,沒有布林值,也沒有在條件陳述句之后執行的代碼。我不知道這意味著什么。在此先感謝您提供的任何幫助。
uj5u.com熱心網友回復:
(callback(array[i]))
這部分是條件。newArray.push(array[i])
這就是滿足條件時發生的情況。它看起來如此接近。
if (callback(array[i]))
{
newArray.push(array[i])
}
做同樣的事情。
uj5u.com熱心網友回復:
有一個布林值,即callback
使用引數呼叫函式回傳的值array[i]
。(準確地說:根據 JavaScript 語言規范將回傳值解釋為真值 - 這就是“真實”或“虛假”的含義。對于初學者來說,假設callback
確實回傳了一個布林值)
還有正在執行的代碼:條件之后的第一條陳述句。這只是一個符號簡寫。詳細的等效代碼將是:
if (callback(array[i])) {
newArray.push(array[i]);
}
uj5u.com熱心網友回復:
if (callback(array[i])) newArray.push(array[i]);
僅僅意味著這callback
是一個函式,它被呼叫并且期望回傳值(可以是任何值,而不僅僅是布林值)。然后,如果回傳為真,則執行該陳述句newArray.push(array[i]);
。
(單行if (exp) statement;
可以這樣寫,但有時可能會隱藏錯誤,因此一些 linter 更喜歡總是將其更改為
if (exp) {
statement;
}
回呼通常是作為引數傳入的函式(正如您在此處看到的那樣),然后可能會被呼叫。
uj5u.com熱心網友回復:
如果您的條件不起作用,請嘗試使用 if else 回圈。如果您的陳述不是您所期望的,則顯示錯誤訊息,否則 push array[i];
function filterArray(array, callback) {
const newArray = [];
for (let i = 0; i < array.length; i = 1) {
if (!callback(array[i])){
console.log('Something went wrong');
}else{
newArray.push(array[i]);
}
return newArray;
}
′′′
Since you only give this piece of code, it's hard to analyze it, but this may work
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/496710.html
標籤:javascript if 语句 句法