所以我有這段代碼,我想要做的是解析兩個單詞之間的內容,如: 「開始中間結束」應該返回中間。 如果句子是「開始中間結束,開始middle2結束」,它應該返回一個包含「middle」和「middle2」的數組。功能的參數是未定義的,但我稱它通過了所有必要的參數
的問題是:
當我調用這就是所謂的FindAll的功能,我得到和未定義的對象。我用來測試它的警報還說任何參數都等於一個未定義的對象
你可以在你的螢火蟲上運行它,你會看到。
function findWithin(text, start, end, include) {
"use strict";
var stringExists = (text.indexOf(end) === -1),
startPosition = text.indexOf(start),
endPosition = text.indexOf(end),
tMatch = [2];
tMatch[0] = text.slice(endPosition + end.length, text.length);
if (!stringExists) {
if (include) {
tMatch[1] = text.slice(startPosition, endPosition + end.length);
} else {
tMatch[1] = text.slice(startPosition + start.length, endPosition);
}
} else {
tMatch[2] = false;
}
return tMatch;
}
function findAll(text, start, end, include) {
"use strict";
alert(toString(end));
var findWithinVar = findWithin(text, start, end, include),
occurrences = [],
i = 0;
// alert(toString(findWithinVar[2]));
for (i; findWithinVar[2]; i++) {
occurrences[i] = findWithinVar[1];
findWithinVar = findWithin(text, start, end, include);
}
return occurrences;
}
var text = "Start middle end. Start middle end. Start middle end.",
start = "Start",
end = "end",
result = findAll(text, start, end, false);
@RevanProdigalKnight不,它不是 –
我認爲這不是因爲在調用第一個函數findWithin()時它起作用。 如果findWithin()工作正常,我認爲findAll()也應該正常工作。 – lucasfcosta