【发布时间】:2018-08-27 09:51:09
【问题描述】:
我想检查数组中的字符串 1 是否包含字符串 2 中单词的字母。这是我的示例数组:
(["Floor", "far"]);
函数应该返回 false,因为 "a" 不在字符串 "Floor" 中 但是对于这样的数组:
(["Newbie", "web"]);
它应该返回 true,因为来自“web”的所有字母都在“Newbie”中。
这是我目前的代码...
function mutation(arr) {
var newArr = [];
for (i=0; i<arr.length; i++) {
newArr.push(arr[i].toLowerCase().split(""));
}
for (i=0; i<newArr.length; i++) {
for (j=0; j<newArr[i].length; j++) {
console.log(newArr[0][j]+ (newArr[1][j]));
}
}
}
mutation(["Newbie", "web"]);
我知道它行不通,而且我不知道如何制作它。我尝试在两个数组中制作一组所有字母并进行比较。如果至少有一个 false,该函数应该返回 false。我应该在某处嵌套 indexOf() 方法吗?
【问题讨论】:
-
使用集合应该可以。我在 Google 上搜索了一个库并找到了 JS.set。如果您将“新手”中的所有字母放入 set1 并将“web”中的所有字母放入 set 2,那么您的结果就是 set2.isSubsetOf(set1)。
-
或者,检查 'web' 中的每个字母在 'newbie' 中是否具有 indexOf > -1。
-
好的。但是如何使用 indexOf() 使其工作?
标签: javascript arrays string for-loop