javascript - 我无法让它作为 JavaScript 函数工作(当我 console.log 时,我得到了我想要的返回值,但我无法将其作为函数调用)

标签 javascript arrays function dictionary

我试图让它作为一个函数工作,我可以将其作为任何字符串上的函数调用,以获取 truefalse 语句的返回值使用 .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/

相关文章:

javascript - 如何在 Asp.net 的静态方法服务器端代码中执行 JavaScript 警报?

javascript - DOM 元素添加到 DOM 树后是否立即可用?

java - 如何将数组传递给构造函数并在类中使用它?

javascript - 如何在 jquery ajax 成功中获得响应头授权?

arrays - Bash:如何从数组中提取最长的目录路径?

java - 将 JSON(或对象)添加到 STRING json 数组

r - 添加一列显示前两列是否包含 0

c++ - 函数未在范围内声明 (C++)

php - PHP中如何检查函数是否最后一次被调用

javascript - 如何使用drawImage/putImageData进行剪辑