JavaScript - 从数组

时间:2018-03-11 12:41:48

标签: javascript arrays function

我试图从数组中的连续字符串中找到一个单词,而我现在卡住了。

例如: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。

你能帮帮忙吗?

7 个答案:

答案 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)

试试这个:

&#13;
&#13;
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;
&#13;
&#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()函数:

&#13;
&#13;
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;
&#13;
&#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()的组合来检查是否按正确的顺序找到所有字母:

&#13;
&#13;
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;
&#13;
&#13;