我试图从数组中的连续字符串中找到一个单词,而我现在卡住了。
例如:array = ['w', 'r', 'a', 'p', 'p', 'l', 'e', 'f', 'k', 'l'];
我想创建一个函数,如果单词'apple'在这个数组中,它将返回true。字符串需要连续。
array1 = ['w', 'r', 'a', 'p', 'l', 'p', 'e', 'f', 'k', 'l'];
这种没有连续'apple'字符串的字符串的函数应该返回false。
你能帮帮忙吗?
答案 0 :(得分:0)
一种方法是遍历你的数组,并获得长度等于匹配子字符串长度的子字符串,并将子字符串与匹配的子字符串进行比较
for (int i=0; i<array.length-matching.length; i++) {
if (array.substr(i, i+matching.length) == matching) return true;
} return false;
答案 1 :(得分:0)
试试这个:
var array = ['w', 'r', 'a', 'p', 'p', 'l', 'e', 'f', 'k', 'l'];
function findWord(arr, word) {
return arr.join('').indexOf(word) !== -1;
}
// test
console.log('apple: ', findWord(array, 'apple'))
console.log('dog: ', findWord(array, 'dog'))
&#13;
答案 2 :(得分:0)
array = ["w", "r", "a", "p", "p", "l", "e", "f", "k", "l"];
console.log(array.toString().replace(/,/g,"").indexOf("apple")>-1);
答案 3 :(得分:0)
检查此功能:
function hasWord(inputSourceList, inputWord) {
return inputSourceList.join('').indexOf(inputWord) > -1;
};
答案 4 :(得分:0)
使用Array.join()
,String.replace()
和String.indexOf()
函数:
var contains_word = function(arr, w) {
return arr.join('').replace(new RegExp('[^' + w + ']', 'g'), '')
.indexOf(w) !== -1;
}
console.log(contains_word(['w', 'r', 'a', 'p', 'l', 'p', 'e', 'f', 'k', 'l'], 'apple'));
console.log(contains_word(['w', 'r', 'a', 'p', 'p', 'l', 'e', 'f', 'k', 'l'], 'apple'));
&#13;
答案 5 :(得分:0)
另一种方法可以使用includes。
var arr = ['a','b','c','a','P','p','l','E'];
function includesWord(sourceArr, word){
return sourceArr.join('').toLowerCase().includes(word.toLowerCase());
}
console.log(includesWord(arr, 'APPLE'));
答案 6 :(得分:0)
您可以使用Array.every()
和Array.indexOf()
的组合来检查是否按正确的顺序找到所有字母:
const findWordInArray = (word, array) => {
let last = -1; // stores the last index found
// iterate the letters of the word
return [...word].every((c) => {
// search for the letter from the last known position + 1 onwards
const index = array.indexOf(c, last + 1);
last = index; // change last to the new found position
return index !== -1;
});
}
const array1 = ['w', 'r', 'a', 'p', 'p', 'l', 'e', 'f', 'k', 'l'];
const array2 = ['w', 'r', 'a', 'p', 'l', 'p', 'e', 'f', 'k', 'l'];
const word = 'apple';
console.log(findWordInArray(word, array1));
console.log(findWordInArray(word, array2));
&#13;