gpt4 book ai didi

javascript - 在字符串数组中查找字符组合

转载 作者:行者123 更新时间:2023-11-30 14:21:27 27 4
gpt4 key购买 nike

我想知道 str x 的任意组合是否在数组中。一击已经可以了。

var x = 'ACBC';
var arr = ['X','AB'];
var arr2 = ['X','234','C'];
var arr3 = ['X','CC'];
var arr4 = ['X','BB'];

console.log(containsString(arr,x)) // true
console.log(containsString(arr2,x)) // true
console.log(containsString(arr3,x)) // true
console.log(containsString(arr4,x)) // false

最佳答案

您可以通过短路迭代数组并展开字符串并检查所需字符的位置。

function containsString(array, string) {
return array.some(s => [...s].every(
(i => c => i = string.indexOf(c, i) + 1)(0)
));
}

var x = 'ACBC',
arr = ['X', 'AB'],
arr2 = ['X', '234', 'C'],
arr3 = ['X', 'CC'],
arr4 = ['X', 'BB'];

console.log(containsString(['X', 'AB'], 'ACBC')); // true
console.log(containsString(['X', 'BA'], 'ACBC')); // false, see below
console.log(containsString(['X', '234', 'C'], 'ACBC')); // true
console.log(containsString(['X', 'CC'], 'ACBC')); // true
console.log(containsString(['X', 'BB'], 'ACBC')); // false

虽然以上仅适用于已排序的字符串,但您需要提前排序以将其与 indexOf 和变化的起始位置一起使用。

function containsString(array, string) {
var sorted = [...string].sort();
return array.some(s => [...s].sort().every(
(i => c => i = sorted.indexOf(c, i) + 1)(0)
));
}

console.log(containsString(['X', 'AB'], 'ACBC')); // true
console.log(containsString(['X', 'BA'], 'ACBC')); // true now
console.log(containsString(['X', '234', 'C'], 'ACBC')); // true
console.log(containsString(['X', 'CC'], 'ACBC')); // true
console.log(containsString(['X', 'BB'], 'ACBC')); // false

关于javascript - 在字符串数组中查找字符组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52681959/

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