我正在创建两个函数,它们将接受一个数组并像这样反转索引和字符
输入:['apple', 'potato', 'Capitalized Words'] 输出:['sdroW dezilatipaC', 'otatop', 'elppa']
我创建的第一个函数 (reverseCharacters) 反转字符串的字符。
我尝试创建的第二个函数 (completeReversal) 将像上面的示例一样通过对数组的每个元素调用 reverseCharacters 函数来完全反转数组,然后反转数组中的项目并将它们添加到新的空数组将显示为输出。
在我的 completeReversal 函数中,我能够反转数组中的元素,但也不能调用我的 reverseCharacters 函数来反转字符。我一直收到“不是函数错误”
我曾尝试在调用 reverseCharacters 函数之前将数组转换为字符串,但无论哪种方式,似乎仍然出现 is not a function 错误。
// Code reverseCharacters here:
function reverseCharacters(str){
if (typeof str == 'string' ){
return str.split('').reverse().join('');
} else if (typeof str == 'number'){
str = String(str);
str = str.split('').reverse().join('');
return Number(str);
}
}
// Code complete()Reversal here:
function completeReversal(sampleArray){
let emptyArray = [];
sampleArray.reverse();
for (i = 0; i < sampleArray.length; i++ ){
emptyArray.push(sampleArray[i]);
sampleArray.reverseCharacters();
}
return sampleArray;
}
console.log(completeReversal(['apple', 'potato', 'Capitalized Words']));
最佳答案
您以错误的方式调用函数,因为 sampleArray
是普通数组并且其原型(prototype)上没有任何名为 reverseCharacters
的方法,因此您无法调用它像这样
sampleArray.reverseCharacters();
你需要这样调用函数
emptyArray.push(reverseCharacters(sampleArray[i]));
同时从函数返回emptyArray
变量
// Code reverseCharacters here:
function reverseCharacters(str) {
if (typeof str == 'string') {
return str.split('').reverse().join('');
} else if (typeof str == 'number') {
str = String(str);
str = str.split('').reverse().join('');
return Number(str);
}
}
// Code complete()Reversal here:
function completeReversal(sampleArray) {
let emptyArray = [];
sampleArray.reverse();
for (i = 0; i < sampleArray.length; i++) {
emptyArray.push(reverseCharacters(sampleArray[i]));
}
return emptyArray;
}
console.log(completeReversal(['apple', 'potato', 'Capitalized Words']));
另一个更短的解决方案可以是这个
const completeReversal = (arr) => {
return arr.reverse().map(str => str.split('').reverse().join(''))
}
console.log(completeReversal(['apple', 'potato', 'Capitalized Words']));
关于javascript - 在调用我创建的新函数内部创建的函数时如何修复不是函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57645660/