gpt4 book ai didi

Javascript:内部字符问题的字符串比较

转载 作者:行者123 更新时间:2023-11-28 03:45:32 25 4
gpt4 key购买 nike

这里有一个小问题。我在下面遇到了这个挑战。

圣诞节即将到来,圣诞老人有一个长长的 list 需要查看,以找到谁应该在这个重要的日子收到礼物。遍历 child 列表,并返回包含出现在圣诞老人名单上的每个 child 的列表。请勿多次添加任何子项。输出应该排序。

比较应区分大小写,返回的列表仅返回每个名称的一份副本。允许使用“Sam”和“sam”,但不允许使用“sAm”和“sAm”。

这是我的代码

function findChildren(santasList, children) {
children.forEach(child => {
santasList.forEach(s => {
if(child.toLowerCase() === s.toLowerCase()){

var longerLength = Math.max(child.length, s.length);
for(var i = 0; i < longerLength; i++){
if (child[i] !== s[i]){
console.log(child);
return i;

}
console.log(child);
break;
}
}
});

});

}

let santasList = ["Tom", "Errol", "Sam", "mistyMay","Peter","Jennifer",
"macMerphy"];
let children = ["Errol", "Peter", "jennifer", "mistymay", "MacMerphy"];

findChildren(santasList, children);

这将打印;埃罗尔彼得詹妮弗米斯蒂梅麦克墨菲

但我相信它应该打印出来;埃罗尔彼得詹妮弗麦克墨菲?

修复在哪里?

最佳答案

这是因为

if (child.toLowerCase() === s.toLowerCase()) {

比较是以不区分大小写的方式进行的

此外,您还可以使用 filterincludes 进一步改进代码(目前为 O(N^3))

function findChildren(santasList, children) {
return children.sort().filter( s => santasList.includes( s ) );
}

演示

function findChildren(santasList, children) {
return children.sort().filter( s => santasList.includes( s ) );
}

let santasList = ["Tom", "Errol", "Sam", "mistyMay", "Peter", "Jennifer",
"macMerphy"
];
let children = ["Errol", "Peter", "jennifer", "mistymay", "MacMerphy"];

console.log(findChildren(santasList, children));

关于Javascript:内部字符问题的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48515292/

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