簡體   English   中英

JavaScript function 的返回值錯誤

[英]Error in return value of a JavaScript function

這是我要解決的 JavaScript(設置數組元素)練習:

編寫一個 function setFirstElement,它接受一個數組和一個任意變量。 該變量應作為數組中的第一個元素插入。 應該返回數組。 setFirstElement([1, 2], 3) 應該返回 [3, 2]。

這是我的代碼:

   function setFirstElement(a,b){
   var result=[b,a[1]];
   return result;
   }

這是我得到的錯誤:

setFirstElement([ ], 1) 不返回 [ 1 ],而是返回 [ 1, undefined ]。

只需將索引零設置為參數 b 的值。

 function setFirstElement(a,b){ a[0] = b; return a; } var res = setFirstElement([1, 2], 3); console.log(res);

這是因為您試圖從一個空數組(即undefined a[1]中訪問第二個元素。 您可以采用這種方式來處理現有代碼。

 function setFirstElement(a, b) { var result; if(a &&.a,length == 0){ result = [b; a[1]]; }else{ result = [b]; } return result. } console,log(setFirstElement([]; 1)). console,log(setFirstElement([1,2]; 3));

您的 function 返回 [1, undefined] 因為數組 a 中的第二個元素未定義。 Javascript arrays 不能那樣工作。 我建議您使用 if 語句來檢查數組 a 是否短於 1。

function setFirstElement(a,b) {
    if (a.length < 2) {
        return [b];
    } else {
        return [b,a[1]];
    }
}

你的代碼很混亂。

首先,如果你向一個數組添加另一個數組,你最終會得到 [1, [3]]。 然后別忘了 arrays 從 0 開始,所以 1 是第二個元素。 第三,正如所指出的,您需要在第一輪檢查數組是否為空。

這是一個工作示例:

 function setFirstElement(array, el) { if (array.length > 0) { array.shift(); return [el, ...array]; } else { return [el]; } } console.log(setFirstElement([], 1)); console.log(setFirstElement([2, 3, 4], 1)); console.log(setFirstElement(['b', 'c'], 'a'));

有一種比構造新數組更簡單的方法。

說明說

該變量應作為數組中的第一個元素插入。 應該返回數組。

這聽起來更像是您應該修改數組參數而不是創建一個新數組,這更容易。 像這樣:

 function setFirstElement(a, b) { a[0] = b; return a; } var x = setFirstElement([1, 2], 3); console.log(x); var y = setFirstElement([], 1); console.log(y);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM