Javascript:如何从一个函数中获取结果并在另一个函数中使用?

时间:2016-09-14 18:46:17

标签: javascript function variables

我知道之前曾经问过这样的问题,但是过了他们我不能完全确定它能解决我想要的问题。我在一个变量和两个函数中有一串文本。第一个函数依赖于文本字符串,另一个字符串列出了无趣的常用单词。函数结果将列出最常见的单词列表,排除不感兴趣的常用单词。现在我得到的第二个函数使用相同的原始文本字符串(现在)来挑出最常用的单词而不排除任何单词,但我希望这个脚本能够获取第一个函数的结果列表,其中我是单词没有兴趣被排除在外,然后从那个结果中挑出最常用的单词,这意味着它必须检查全文和第一个函数的结果。

我已经尝试了一些简单的东西,对于我的“新到这个”大脑被认为是合乎逻辑的,结果证明它不是那么合乎逻辑,因此任何关于我如何将有效单词从函数1转移到函数2的提示在某种程度上会将该列表与全文进行比较。

如果您需要我正在使用的代码示例,请告诉我,希望这个问题是可以理解的,如果不是,我们会尝试澄清。

编辑:显然没有像我想的那样解释得那么好。最后的最终结果将是脚本返回原始文本,但最常见的单词在整个文本中更改为其他内容,但是现在我最感兴趣的是让它找到该单词。我现在必须看起来像这样:

//function 1
function getUncommon(testText, common) {
var wordArr = testText.match(/\w+/g),
    commonObj = {},
    uncommonArr = [],
    word, i;

common = common.split(',');
for ( i = 0; i < common.length; i++ ) {
    commonObj[ common[i].trim() ] = true;
}

for ( i = 0; i < wordArr.length; i++ ) {
    word = wordArr[i].trim().toLowerCase();
    if ( !commonObj[word] ) {
        uncommonArr.push(word);
    }
}

return uncommonArr;
//var getFrequency2(testText, common);
}
document.write( getUncommon(testText, common) );

//function 2
 function getFrequency2(testText, cutOff) {
 var cleanString = testText.replace(/[\.,-\/#!$%\^&\*;:{}=\-_`~()]/g,""),
  words = cleanString.split(' '),
  frequencies = {},
  word, frequency, i;

 for( i=0; i<words.length; i++ ) {
word = words[i];
frequencies[word] = frequencies[word] || 0;
frequencies[word]++;
 }

 words = Object.keys( frequencies );

 return words.sort(function (a,b) { return frequencies[b] -frequencies[a];}).slice(0,cutOff).toString();
}

document.write( getFrequency2(testText, 1  ) );

功能1:列出最常见的单词,不包括我选择排除的单词。 功能2:不排除选择最常用的单词。

我想将功能1的结果合并或转移到功能2中,这就是我的问题所在。

1 个答案:

答案 0 :(得分:1)

你可以在javascript中使用这样的东西:

[HttpGet]
[Route("api/Admin/GetLoanInfo")]
public async Task<IHttpActionResult> GetLoanInfo(int loanID)
{

        LoanApplication newApplication = null;
        newApplication = db.LoanApplications.FirstOrDefault(s => s.LoanId == loanID);
        return Ok(newApplication);
}


[HttpGet]
[Route("api/Admin/GetLoanCovenants")]
public async Task<IHttpActionResult> GetLoanCovenants(int loanID)
{
        LoanCovenant newCovenant = null;
        newCovenant = db.LoanCovenants.FirstOrDefault(s => s.LoanID == loanID);
        return Ok(newCovenant);
}

countOfRelevantWords变量将包含两个函数的结果。

如果您不想嵌套它们,(让我们说这些功能已经定义并在其他地方使用),那么:

var toBeChecked = 'The string to be checked. This will remove irrelevant things from the string and count the occurences';
var toExclude = ['to', 'be', 'the'];
var excludeIrelevant = function(str, excl){
     //logic to exclude the irelevant words fromt he string
     return theArrayOfRelevantStrings;
}
var countOccurences = function(str, excl){
     var relevantWords = excludeIrelevant(str, excl);
     //function that counts the occurences of each word in the relevantWords variable and retruns an array of objects of form [{'word':'the_word', 'count' : number_of_occurences}} 
     return theArrayOfWordCountObjects;
}

var countOfRelevantWords = countOccurences(toBeChecked, toExclude);