2016-11-20 63 views
0

函數keywordusage應返回布爾型數組中的哪個關鍵字存在於文本中,例如:array: [true, false, false]。基於函數的第二個參數。現在,我只能返回true的值,我不知道如何在案例爲false時返回false的值。代碼如下。輸出應爲[TRUE,FALSE,FALSE]通過匹配兩個數組中的單詞返回一個布爾數組

{function keywordusage(str,strArr){ 
var count = []; 
var found = true; 
var notfound = false; 
    var words = str.split(' '); 
    var wordsLength = words.length; 
    var ArrLength = strArr.length; 
    for(var i = 0; i < ArrLength; i++){ 
    for(var j = 0; j < wordsLength; j++){ 
     if(words[j]===strArr[i]) 
     count.push(true); 
     } 
    } 
    return count; 
} 

document.write(keywordusage('Dive Into Python is a free book for experienced programmers', ['Python', 'python', 'scala']));} 
+2

'else {count.push(false);}'? –

+0

是的,這是真的,但將包括所有來自第二個字符串的錯誤,因爲我運行兩個循環。就像潛水,進入等我不想要的虛假價值一樣。如果第二個數組中的單詞匹配或不匹配,我只想true或false。結果應該是隻有3個值的數組。 – sahil

回答

0
function keywordusage(text, keywords) { 
    var elements = text.split(" "); 
    var result = Array(); 
    for (var i=0; i < keywords.length;i++){ 
     if (elements.indexOf(keywords[i]) >= 0) 
      result[i] = true; 
     else 
      result[i] = false; 
    }//end of for loop 
    return result; 
} 

var result = keywordusage('Dive Into Python is a free book for experienced programmers', ['Python', 'python', 'scala']); 
console.log(result) 
+0

感謝兄弟.....其中最簡單的一個。我知道了 – sahil

0

所有你需要是使用array.map()函數,其基本上是一個命令,允許你通過執行函數來創建一個新的數組對現有數組中的每個值。

在這種情況下陣列1已經存在,並且returnArray未定義

則稱returnArray等於「通過檢查textString.indexOf(array1)在array1每個值映射大於-1

.indexOf()返回的位置在字符串中的字符串,或-1,如果該字符串不存在。

function keywordusage(array1, textString) { 
 
    var returnArray = array1.map(x => textString.indexOf(x) > -1); 
 
    return returnArray; 
 
} 
 

 
// demonstration of usage 
 
var checkArray = ["the", "quick", "brown"]; 
 
var checkString = "the quick red fox jumped over the lazy dog"; 
 

 
console.log(JSON.stringify(keywordusage(checkArray, checkString)));

+0

哦,你讓我的一天....... :)謝謝 – sahil

1

你可以只用一個圖來檢查,如果你的模式陣列的話是在字符串中

var keywordusage = (str, strArr) => strArr.map(x => str.split(" ").indexOf(x) !== -1); 
 
console.log(keywordusage('Dive Into Python is a free book for experienced programmers', ['Python', 'python', 'scala']));

+0

謝謝..我找到了解決方案。 – sahil

0

您可以簡單地使用javascript map function

下面的代碼

結帳

function keywordusage(str, strArr) { 
 
    var count = []; 
 
    strArr.map(function(s) { 
 
    return count.push(str.indexOf(s) !== -1); 
 
    }); 
 
    console.log(count); 
 
    return count; 
 
} 
 

 
document.write(keywordusage('Dive Into Python is a free book for experienced programmers', ['Python', 'python', 'scala']));

希望這將幫助你(Y)。

+0

是的,謝謝你,我發現我想要的。 :) – sahil

相關問題