Javascript - 在 "if" 语句中直接传递 array[0] 与 array[0] by i= 0 array[i] 有根本的不同吗?
Javascript - Is passing array[0] directly vs array[0] by i= 0 array[i] fundementally different inside an "if" statement?
正在应对编程挑战。 objective 是创建一个 "Drop[s] the elements of an array (first argument), starting from the front, until the predicate (second argument) returns true."
的函数
dropElements([1, 2, 3, 4], function(n) {return n > 5;});
function dropElements(arr, func) {
for (i = 0; i < arr.length-1; i++) {
if(func(arr[i])) {
break;
}
else {
arr.splice(i,1);
i--;
}
}
return arr;
}
returns [4]
这是错误的答案
但是如下:
dropElements([1, 2, 3, 4], function(n) {return n > 5;});
function dropElements(arr, func) {
for (i = 0; i < arr.length; i++) {
if (func(arr[0])) {
break;
}
else {
arr.shift();
i--;
}
}
return arr;
}
returns []
正确答案
我都是手写的,看起来应该是一样的。是不是和我不明白的强制有什么关系?
您的第一个循环是 arr.length-1
,而第二个循环是 arr.length
。
正在应对编程挑战。 objective 是创建一个 "Drop[s] the elements of an array (first argument), starting from the front, until the predicate (second argument) returns true."
的函数dropElements([1, 2, 3, 4], function(n) {return n > 5;});
function dropElements(arr, func) {
for (i = 0; i < arr.length-1; i++) {
if(func(arr[i])) {
break;
}
else {
arr.splice(i,1);
i--;
}
}
return arr;
}
returns [4]
这是错误的答案
但是如下:
dropElements([1, 2, 3, 4], function(n) {return n > 5;});
function dropElements(arr, func) {
for (i = 0; i < arr.length; i++) {
if (func(arr[0])) {
break;
}
else {
arr.shift();
i--;
}
}
return arr;
}
returns []
正确答案
我都是手写的,看起来应该是一样的。是不是和我不明白的强制有什么关系?
您的第一个循环是 arr.length-1
,而第二个循环是 arr.length
。