我只是javaScript的初学者,拥有python的背景.我正在尝试这个练习来检查string2的每个字符是否都包含在string1中.例如,如果STRING1是"你好",我会回来true,如果字符串2是"列城"的false,如果字符串2为"低".
我提出的是这个:
function mutation(arr) {
var set = new Set(string1.split(''));
for (var i = 0; i < string2.length; i++)
if (!set.has(string2[i]))
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
我还可以去转换字符串2为一组,然后就采取即操作的差异set(string2) - set(string1),这将取我的一组是包含字符串,但不是在字符串1个字符,但我读创建一组是昂贵的,所以我没有去先.
我检查了其他解决方案,每个人都在使用string1.indexOf(letter)方法来检查string2中的每个字母是否都在string1中.
我想知道什么时候应该使用一组差异.为什么每个人都在使用array.indexOf()花费O(n)而不是set.has()O(1)的方法的方法.如果我正在使用,是否有任何陷阱set.has().(说浏览器兼容性)?
任何建议都有帮助.
我有一个 Unicode 值列表,[65, 66, 67]我想要相应的 string "ABC"。我查看了文档并找到了String.fromCharCode()可以完成我需要做的功能的功能。唯一的问题是参数必须是数字序列。
所以如果我使用String.fromCharCode([65, 66, 67])它会给我" ".
有没有办法允许将列表视为函数的序列?