为什么我的函数总是返回未定义的状态?
Why does my function keep coming back as undefined?
这是我的代码。我对 javascript 还是很陌生,所以我不明白为什么添加函数会阻止 for 语句递增整数。
const arr = [10,10,16,12]
function incrementByOne(arr) {
// arr is an array of integers(numbers), Increment all items in the array by
// return the array
for (const i = 0; i < arr.length; i++){
arr[i] += 1;
}
return arr
}
如有任何帮助,我们将不胜感激。
你应该使用 let i = 0 而不是 const i= 0 来初始化循环迭代计数器 i
const arr = [10,10,16,12]
function incrementByOne(arr) {
// arr is an array of integers(numbers), Increment all items in the array by
// return the array
for (let i = 0; i < arr.length; i++){
arr[i] += 1;
}
return arr
}
然后调用increment By One函数
incrementByOne(arr);
您也可以使用地图:
const incrementByOne = (arr) => arr.map((element) => element + 1);
const arr = [10,10,16,12]
function incrementByOne(arr) {
// arr is an array of integers(numbers), Increment all items in the array by
// return the array
for (let i = 0; i < arr.length; i++){
arr[i] += 1;
}
return arr
}
let a = incrementByOne(arr)
console.log(a)
我运行你的代码在Node.js下:
代码:
'use strict';
const arr = [10,10,16,12]
function incrementByOne(arr) {
for (const i = 0; i < arr.length; i++) {
arr[i] += 1;
}
return arr
}
console.log(incrementByOne(arr));
输出:
$ node incr.js
incr.js:6
for (const i = 0; i < arr.length; i++){
TypeError: Assignment to constant variable.
at incrementByOne (incr.js:6:37)
$
如您所见,它抱怨您正在尝试更改 i
的值,您的代码表示该值是常量。写 let i = 0
为非常量值。
代码:
'use strict';
const arr = [10,10,16,12]
function incrementByOne(arr) {
for (let i = 0; i < arr.length; i++) {
arr[i] += 1;
}
return arr
}
console.log(incrementByOne(arr));
输出:
$ node incr.js
[ 11, 11, 17, 13 ]
$
这是我的代码。我对 javascript 还是很陌生,所以我不明白为什么添加函数会阻止 for 语句递增整数。
const arr = [10,10,16,12]
function incrementByOne(arr) {
// arr is an array of integers(numbers), Increment all items in the array by
// return the array
for (const i = 0; i < arr.length; i++){
arr[i] += 1;
}
return arr
}
如有任何帮助,我们将不胜感激。
你应该使用 let i = 0 而不是 const i= 0 来初始化循环迭代计数器 i
const arr = [10,10,16,12]
function incrementByOne(arr) {
// arr is an array of integers(numbers), Increment all items in the array by
// return the array
for (let i = 0; i < arr.length; i++){
arr[i] += 1;
}
return arr
}
然后调用increment By One函数
incrementByOne(arr);
您也可以使用地图:
const incrementByOne = (arr) => arr.map((element) => element + 1);
const arr = [10,10,16,12]
function incrementByOne(arr) {
// arr is an array of integers(numbers), Increment all items in the array by
// return the array
for (let i = 0; i < arr.length; i++){
arr[i] += 1;
}
return arr
}
let a = incrementByOne(arr)
console.log(a)
我运行你的代码在Node.js下:
代码:
'use strict';
const arr = [10,10,16,12]
function incrementByOne(arr) {
for (const i = 0; i < arr.length; i++) {
arr[i] += 1;
}
return arr
}
console.log(incrementByOne(arr));
输出:
$ node incr.js
incr.js:6
for (const i = 0; i < arr.length; i++){
TypeError: Assignment to constant variable.
at incrementByOne (incr.js:6:37)
$
如您所见,它抱怨您正在尝试更改 i
的值,您的代码表示该值是常量。写 let i = 0
为非常量值。
代码:
'use strict';
const arr = [10,10,16,12]
function incrementByOne(arr) {
for (let i = 0; i < arr.length; i++) {
arr[i] += 1;
}
return arr
}
console.log(incrementByOne(arr));
输出:
$ node incr.js
[ 11, 11, 17, 13 ]
$