为什么我的代码没有将每个奇数索引加倍?
Why is my code not doubling every odd index?
我正在尝试编写 Luhn 算法的一个版本,但为什么我的代码没有将此处的每个奇数索引加倍?它似乎是索引模式的两倍,但我不明白它是如何从我的代码中获得该模式的。
const validateCred = (array) => {
let removeLast = array.pop();
let reversed = array.reverse();
console.log(reversed);
for (let i = reversed[0]; i < reversed.length; i++)
if (reversed[i] % 2 !== 0) {
reversed[i] *= 2;
}
console.log(reversed)
[ 0, 8, 6, 1, 0, 8, 0, 9, 7, 7, 6, 9, 3, 5, 4 ]
[ 0, 8, 6, 2, 0, 8, 0, 18, 14, 14, 6, 18, 6, 10, 4 ]
如您所见,它会将一些数字加倍,但不会将奇数加倍。
如果您谈论的是奇数索引,那么您在“for”循环中使用 reversed[i] 的问题,然后在“if”条件中使用。仅用“i”替换了两个实例。 “i”代表此代码中的索引。
固定函数:
const validateCred = (array) => {
let removeLast = array.pop();
let reversed = array.reverse();
console.log(reversed);
for (let i = 0 ; i < reversed.length; i++)
if (i % 2 !== 0) {
reversed[i] *= 2;
}
console.log(reversed)
}
如果您要将数组中的每个奇数元素加倍,这将起作用 - 将“i”保留在循环中并在“if”处反转[i]:
const validateCred = (array) => {
let removeLast = array.pop();
let reversed = array.reverse();
console.log(reversed);
for (let i = 0; i < reversed.length; i++)
if (reversed[i] % 2 !== 0) {
reversed[i] *= 2;
}
console.log(reversed)
}
我正在尝试编写 Luhn 算法的一个版本,但为什么我的代码没有将此处的每个奇数索引加倍?它似乎是索引模式的两倍,但我不明白它是如何从我的代码中获得该模式的。
const validateCred = (array) => {
let removeLast = array.pop();
let reversed = array.reverse();
console.log(reversed);
for (let i = reversed[0]; i < reversed.length; i++)
if (reversed[i] % 2 !== 0) {
reversed[i] *= 2;
}
console.log(reversed)
[ 0, 8, 6, 1, 0, 8, 0, 9, 7, 7, 6, 9, 3, 5, 4 ]
[ 0, 8, 6, 2, 0, 8, 0, 18, 14, 14, 6, 18, 6, 10, 4 ]
如您所见,它会将一些数字加倍,但不会将奇数加倍。
如果您谈论的是奇数索引,那么您在“for”循环中使用 reversed[i] 的问题,然后在“if”条件中使用。仅用“i”替换了两个实例。 “i”代表此代码中的索引。
固定函数:
const validateCred = (array) => {
let removeLast = array.pop();
let reversed = array.reverse();
console.log(reversed);
for (let i = 0 ; i < reversed.length; i++)
if (i % 2 !== 0) {
reversed[i] *= 2;
}
console.log(reversed)
}
如果您要将数组中的每个奇数元素加倍,这将起作用 - 将“i”保留在循环中并在“if”处反转[i]:
const validateCred = (array) => {
let removeLast = array.pop();
let reversed = array.reverse();
console.log(reversed);
for (let i = 0; i < reversed.length; i++)
if (reversed[i] % 2 !== 0) {
reversed[i] *= 2;
}
console.log(reversed)
}