【问题标题】:Search words in array based on few words根据几个单词在数组中搜索单词
【发布时间】:2019-01-17 05:37:11
【问题描述】:

您好,我在如何搜索包含至少部分单词的单词时遇到了问题。我的意思是我在数组 javascript 中找到的单词,除了 PUSH 之外没有内置函数。

这个任务不需要 index.of、slice、substr、substring、regex 等。只需要 PUSH

到目前为止这是我的代码:

function wordsChecker(sentences, search) {
    var result = []
    for (var i = 0; i < sentences.length; i++) {
        var isCheck = false
        for (var j = 0; j < sentences.length; j++) {
            for (var k = 0; k < search.length; k++) {
                if (sentences[i][j] == search[k]) {
                    isCheck = true
                }
            }
        }
        if (isCheck == true) {
            result.push(sentences[i])
        }
    }
    return result
}

console.log(wordsChecker(['broom, room, rox, show room, stroom, root, rote, brother'], 'roo'))

//expected output : [broom, room, show room, stroom, root]

提前致谢

【问题讨论】:

  • 介意解释为什么一个数组有 3 个循环吗?
  • 你有什么问题?
  • push 不是从数组中查找内容的好方法,因为它不从数组中读取,并且只返回新推送成员的索引。
  • 使用类似于for(var i = 0; i &lt; sentences.length; i++) {if(sentences[i].contains(search){return true}else{return false}}的东西
  • 您正在传递一个带有单个字符串的数组。这是你的意思,还是应该sentences 是一个具有多个值的数组?实际上,如果我了解您要执行的操作,则需要拆分该字符串。

标签: javascript arrays search


【解决方案1】:

首先你应该制作正确的数组。我希望这段代码对你有用

function wordsChecker(sentences, search) {
    var result = [], k = 0;
    for (var i = 0; i < sentences.length; i++) {
        var isCheck = false;
        for (var j = 0; j < sentences[i].length; j++) {
            while (k < search.length) {
                if (sentences[i][j] == search[k]) {
                    isCheck = true;
                    k++;
                    break;
                } 
                else {
                  isCheck = false;
                  k = 0;
                  break;
                }
            }
        }
        if (isCheck === true && k === search.length) {
            result.push(sentences[i]);
            k = 0;
        }
    }
    return result;
}

console.log(wordsChecker(['broom', 'room', 'rox', 'show room', 'stroom', 'root', 'rote', 'brother'], 'roo'));

【讨论】:

  • 谢谢兄弟,但我在 2 天前解决了这个问题。但我喜欢你编码的方式。
猜你喜欢
  • 1970-01-01
  • 2018-03-17
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多