我對編碼完全陌生:我想遍歷陣列輸入,僅選擇正數,然后將它們放入新陣列串列中,然后在控制臺中列印新陣列。我在這里做錯了什么?!?
let input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -11, -12, -13, -14, -15];
var liste = [];
function cut(input){
for (var i=0; i<cut.length; i ){
if (i>0){
liste.push(input[i]);
return liste;
}
}
var result = cut(input);
console.log(result);
uj5u.com熱心網友回復:
由于我無法在評論中準確描述我想要解釋的內容,因此我發布了一個答案:
當我像這樣格式化我的代碼時,我發現平衡大括號要容易得多
function cut(input)
{
for (var i=0; i<cut.length; i )
{
if (i>0)
{
liste.push(input[i]);
return liste;
}
}
現在很明顯不平衡的支架在哪里。
其他人已經指出了其他語法錯誤:
- 它不是
cut.length,而是input.length。 - 你的
if陳述必須是if (input[i] > 0),不是if (i > 0) return liste不應該在回圈內部,而是在函式的末尾,因為一旦找到一個值,它將停止回圈并立即在陣列內只回傳 1 個值。
這應該是您打算做什么的作業示例。除了那些少數語法錯誤之外,邏輯做得很好!
let input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -11, -12, -13, -14, -15];
function cut(input){
let liste = [];
for (var i=0; i<input.length; i ){
if (input[i]>0){
liste.push(input[i]);
}
}
return liste;
}
var result = cut(input);
console.log(result);
uj5u.com熱心網友回復:
for (var i=0; i<input.length; i ){
在這里,您要使用 input.length 而不是 cut.length,因為您希望 i 遍歷輸入陣列中的所有索引。
您還忘記了關閉 for 回圈的大括號
此外,您從回圈內部回傳,這意味著回圈已退出,因此一旦找到第一個元素,您將退出函式,因此您只會在串列中獲得一個元素。
uj5u.com熱心網友回復:
您可以使用過濾方法
let input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -11, -12, -13, -14, -15];
let filtered = input.filter(n=>n>0)
uj5u.com熱心網友回復:
像這樣的問題可以通過谷歌搜索來解決,但現在,在你的第二個表達中,你i<cut.length似乎沒有任何意義。您必須將其更改為,i < input.length因為您想遍歷輸入。您也不能有 return 陳述句,因為您將退出回圈。您還可以使用像過濾器函式這樣的高階函式來回傳任何大于 0 的數字。input.filter((num) => num > 0)希望這對您有所幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/466839.html
標籤:javascript 数组 迭代
上一篇:切割銳利的霓虹燈文字和svg效果
