2016-07-30 37 views
-1

我目前正在做一個謎題,並且在如何執行以下操作時遇到了麻煩。繼承人在我的思緒有些情況下一些代碼(這還沒有工作)循環到一個字符串中的特定索引

const words = ['this', 'is', 'my', 'dog', 'bit', 'bite', 'every']; 
const strings = ['thisis', 'thisisacat', 'thisisaduck', 'thisismy', 'thisismydog', 'bitevery']; 
var count; 
for (var i = 0 ; i < strings.length ; i++) 
{ 
    for (var j = 0; j <words.length; j++) 
    { 
    if(strings[i].indexOf(words[j]) !== -1) 
    { 
     count+=words[j].length; 
    } 
    } 
} 

基本上我想先去字this檢查它是否在strings[j]。如果是,則獲得words[i]的長度,然後轉到words[i]'thstrings[j]的位置,這意味着我需要「is」部分'thisis'。基本上我只想測試strings中的每個元素是否可以用words中的任意數量的組合來表示。這當然可以用正則表達式來完成,但是我想使用我現有的思維過程。

TLDR

從我目前的樣子,我怎麼能檢查是否strings每個元素(我在嘗試這種與indexOf)中存在的words陣列中的話,如果是,進入長該字的位置含義轉到i位於thisis的位置。我意識到我說的方式可能有點冗長,但我不知道要怎麼說。任何幫助表示讚賞。

示例執行

我們在strings[i],現在我們會檢查words任何元素是strings[i]。現在this'thisis',所以加四的指標,因爲這有一個四口之長,才能到第四位及以後的thisis,現在我們有is通過words其餘部分,以便循環一遍,現在is裏面is這意味着我們已經在words陣列中使用了一定數量的單詞成功創建了一個單詞。請注意,我實際上並不想從thisis中刪除this,因爲我知道在內存中完全修改字符串非常昂貴。

另一種運行

採取thisismydogstrings。讓我們通過單詞重複。 thisthisismydog裏面,所以現在到thisismydog(因爲有4個長度)的第四個起因,現在我們考慮ismydog。現在再次重複查看單詞中的元素。我們看到is在那裏,所以我們去ismydog中的第二個元素,即mydog。自從我們到達單詞的末尾時,我們可以成功地得出結論,thisismydog確實可以由單詞內的這些元素的組合來表示。

+2

描述你想要生成的確切輸出,最好用2個例子。 – Amit

+0

用你目前的方式?如果有更好更簡單的方法呢? – nicael

+0

我已經添加了一個例子,我將添加另一個 –

回答

-1

變化var count;變爲var count = 0;。您必須初始化該號碼,否則將會是NaN。使用控制檯或alert證明它。

相關問題