我正在嘗試解決來自 jshero.net 的挑戰
撰寫一個 add 函式,將一個元素添加到陣列的末尾。但是,僅當該元素尚未在陣列中時才應添加該元素。
示例:add([1, 2], 3)應該回傳[1, 2, 3]和add([1, 2], 2)應該回傳[1, 2]。
為什么這段代碼不起作用?
function add(Sarray, nosarray) {
if (Sarray.indexOf(nosarray) > -1) {
return Sarray;
} else {
return Sarray.push(nosarray);
}
但回傳 number 2。如果 .push(),我無法理解。新元素作為引數傳遞并添加到陣列的末尾。為什么在我的代碼中不起作用?
uj5u.com熱心網友回復:
請閱讀Array.prototype.push方法的參考。
方法將元素添加到陣列的末尾并回傳陣列的長度。您需要回傳陣列本身 - 而不是 push 方法的結果。
Sarray.push(nosarray);
return Sarray;
uj5u.com熱心網友回復:
這是你的代碼:
function add (Sarray, nosarray) {
if (Sarray.indexOf(nosarray) > -1) {
return Sarray
} else {
return Sarray.push(nosarray)
}
}
該行將作為元素return Sarray.push(nosarray)添加到 $array。然后,它將回傳陣列的長度。因此,如果您將函式的結果分配給變數,則在您的情況下,該變數將等于 3。如果您希望函式回傳整個陣列,則必須先執行然后回傳 $array 。nosarray$array.push(nosarray)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/498080.html
標籤:javascript 数组
