我正在閱讀 Eloquent JavaScipt 第三版來學習 JavaScript。我做了書中的一個練習,并且確信它是正確的。但顯然我錯了,因為它給我的結(jié)果與書中的解決方案不同。目標是編寫一個范圍函數(shù),它接受兩個參數(shù)(start 和 end),并返回一個包含從 start 到(并包括)end 的所有數(shù)字的數(shù)組。編寫一個 sum 函數(shù),它接受一個數(shù)字數(shù)組并返回這些數(shù)字的總和這是我的代碼。function range(a, b, c = a < b ? 1 : -1){ let numbers = []; if (c > 0) { for (let i = a; i <= b; i += c) numbers.push(i); } else { for (let i = a; i >= a; i += c) numbers.push(i); } return numbers;}function sum(array){ let result = 0; for (let i = 0; i <= array.length; i++){ result += array[i]; } return result;}下面是書上的解決方案function range(start, end, step = start < end ? 1 : -1) { let array = []; if (step > 0) { for (let i = start; i <= end; i += step) array.push(i); } else { for (let i = start; i >= end; i += step) array.push(i); } return array;}function sum(array) { let total = 0; for (let value of array) { total += value; } return total;}所以,如果我們運行console.log(range(1, 10));console.log(range(5, 2, -1));console.log(sum(range(1, 10)));我的結(jié)果是[1, 2, 3, 4, 5, 6, 7, 8, 9, 10][5]NaN預期結(jié)果是[1, 2, 3, 4, 5, 6, 7, 8, 9, 10][5, 4, 3, 2]55對我來說,代碼看起來是一樣的。我在這里缺少什么?
定義帶有 for 循環(huán)和 if 語句的函數(shù)以返回數(shù)組和總和
慕村225694
2023-08-10 14:30:56