[英]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.