gpt4 book ai didi

javascript - 如何检查由仲裁字符分隔的某些单词是否存在于另一个字符串中而不考虑它们的顺序

转载 作者:行者123 更新时间:2023-12-03 09:32:06 24 4
gpt4 key购买 nike

我需要检查字符串 a 上的所有键是否都存在于字符串 b 中(例如,一个键是 CTRL)。

键始终用“-”分隔。

我需要比较返回 true 与 b 中键的顺序无关。字符串中的键不能重复,例如 CTRL-SHIFT-CTRL-C 返回 false。

var a = 'CTRL-SHIFT-C';  
var b = 'CTRL-SHIFT-C';

比较结果示例:

var a = 'CTRL-SHIFT-C';  
var b = 'C-SHIFT-CTRL'; // true

var a = 'CTRL-SHIFT-C';
var b = 'SHIFT-C-CTRL'; // true

var a = 'CTRL-SHIFT-C';
var b = 'CTRL-SHIFT-C-D'; // false

目前我正在使用此代码,但在某些情况下无法正常工作。

var a = 'CTRL-SHIFT-A'; // does no work
var b = 'SHIFT-A';

var aPart = a.split('-');
var bPart = b.split('-');
var intersection = aPart.filter(function (n) {
return bPart.indexOf(n) != -1;
});

if (intersection.length !== bPart.length) {
alert('different keys');
} else {
alert('same keys');
}

最佳答案

function compare(s1, s2) {
s1 = s1.split('-');
s2 = s2.split('-');
return (s1.length === s2.length) && (s1.every(function (elem) {
return (s2.indexOf(elem) !== -1);
}));
}

var a = 'CTRL-SHIFT-C';
var b = 'C-SHIFT-CTRL'; // true

console.log(compare(a, b));

a = 'CTRL-SHIFT-C';
b = 'SHIFT-C-CTRL'; // true

console.log(compare(a, b));

a = 'CTRL-SHIFT-C';
b = 'CTRL-SHIFT-C-D'; // false

console.log(compare(a, b));

您可以查看 Array.prototype.every 方法的文档 here

关于javascript - 如何检查由仲裁字符分隔的某些单词是否存在于另一个字符串中而不考虑它们的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31471868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com