簡體   English   中英

不理解此函數中的第二個 return 語句

[英]Not understanding the second return statement in this function

我正在學習 javascript,當我在Codewars上時,我無法解決這個問題,所以我尋找解決方案。

這是我找到的解決方案,我只是不明白為什么在 map 方法中需要第二個 return 語句。 如果有人能給我一些見解,將不勝感激。 謝謝你。

let spinWords = (str) => {
    return str.split(' ').map(function(string) {
        return (string.length > 4) ? string.split('').reverse().join('') : string 
    }).join(' ');
}

第二個返回是回調函數。 試着這樣看:

function reverseWord(string) {
   return (string.length > 4) ? string.split('').reverse().join('') : string 
  }
let spinWords = (str) => {
    return str.split(' ').map(reverseWord).join(' ');
}

所以reverseWord是你的回調函數,有它自己的返回值。 它返回的值是映射數組中使用的值。

.map函數接受一個回調,該回調是一個為數組中的每個項目運行的函數。 舉個簡單的例子:

 const upperCase = str => str.toUpperCase(); console.log( ['a', 'b'].map(upperCase) );

上面,它使用數組的兩個元素調用: upperCase('a')upperCase('b') ,結果被放入新數組中,然后console.log upperCase('b')

您還可以定義內聯函數並將其傳遞給.map

 console.log( ['a', 'b'].map(str => str.toUpperCase()) );

您的原始代碼

str.split(' ').map(function(string) {
   return (string.length > 4) ? string.split('').reverse().join('') : string 
}).join(' ');

正在做同樣的事情,除了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM