我正在创建两个函数,它们将使用一个数组并反转索引和类似的字符
输入:['apple','potato','Capitalized Words'] 输出:['sdroW dezilatipaC','otatop','elppa']
我创建的第一个函数(reverseCharacters)反转字符串的字符。
我尝试创建的第二个函数(completeReversal)将完全反转数组,如上面的示例,方法是在数组的每个元素上调用reverseCharacters函数,然后反转数组中的项并将它们添加到新的空数组中将会显示为输出。
在我的completeReversal函数中,我能够反转数组中的元素,但是不能调用我的reverseCharacters函数来反转字符。我不断收到“不是函数错误”
在调用reverseCharacters函数之前,我曾尝试将数组转换为字符串,但似乎仍然无法获得函数错误。
// 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']));
答案 0 :(得分:1)
您以错误的方式调用函数,因为sampleArray
是普通数组,并且在原型上没有任何名为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']));
答案 1 :(得分:0)
尝试
var array = ['apple', 'potato', 'Capitalized Words'];
var reverseArray = array.reverse();
var reversedStringArray = [];
reverseArray.map((d,i)=>{
reversedStringArray.push(d.split('').reverse().join(''));
});
console.log(reversedStringArray);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>