我试图让它作为一个函数工作,我可以将其作为任何字符串上的函数调用,以获取 true
和 false
语句的返回值使用 .map
的数组形式 -
我了解 .map
的工作原理,并且当我 console.log(lastArray)
时,可以让它在新数组
中返回我想要的值code> 但我无法让它作为一个函数工作,我可以在字符串 lastArray(dirtyString)
或 finalArray("the cat pop racecar blue")
上调用并获取[假,假,真,真,假]
。我不能使用任何循环,必须使用 .map
(但我已经解决了这些问题,因为 console.log-ing FinalArray
返回一个新的正确值数组我...我只是看不出我做错了什么&当我尝试重新处理这个问题时,我得到未定义
。我想保留我现有的方法,我只是不知道为什么它不能作为我可以调用的函数工作(并且我已经完成了数小时的在线研究,并且已经为此工作了好几天)。另外,抱歉我的代码是如此困惑,有时是多余的,并且有大量评论(我刚刚尝试了很多方法试图让它工作,我对 CS 和 JS 有点陌生)。另外,当尝试在字符串上调用该函数时,它也会返回一个错误。这是我的代码:
/* split string into array of substrings, clean out extra spaces, return new array of substrings */
var dirtyString = ("stash and pop on this level");
var cleanArray = function(dirtyString){
var splitString = dirtyString.split(" ");
var cleanArray = splitString.filter(Boolean);
return cleanArray;
};
var newArray = cleanArray(dirtyString);
/* take each element of the array, if it's a palindrome, add a true element to new array using map; if it's not, add a false element to the new array... using map */
///helper function that returns correct value when I console.log it///
var lastArray = newArray.map(function(x) {
if (x === x.split("").reverse().join("")){
return true;}
else {
return false;}
});
*/attempting to put the logic in lastArray into a function I can call /*
var palindromicMap = function (dirtyString) {
var cleanedArray = cleanArray(dirtyString);
var output = cleanedArray.map(function(x){
if (x === x.split("").reverse().join("")){
return true;}
else if (x !== x.split("").reverse().join("")){
return false;}
});
return output;
};
console.log(lastArray);
*/returns correct outcome /*
palidromicMap(cleanArray);
*/returns error /*
palindromicMap("cat pop racecar blue");
*/returns error/*
最佳答案
结账 this jsfiddle here 。该函数接受一个字符串作为参数,但您给了它一个函数,导致出现误导性的错误消息。
基本上将调用更改为
console.log(palindromicMap(dirtyString));
似乎可以解决问题。
关于javascript - 我无法让它作为 JavaScript 函数工作(当我 console.log 时,我得到了我想要的返回值,但我无法将其作为函数调用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34805844/