gpt4 book ai didi

javascript - 测试两个字符串是否相等会给出奇怪的结果

转载 作者:行者123 更新时间:2023-11-28 14:57:12 25 4
gpt4 key购买 nike

我正在尝试比较 JavaScript 中的两个列表。如果 ListA 中存在 ListB 中不存在的内容 - 我想将其推送到 ListB。如果它确实存在,我不想做任何事情。列表中的项目是字符串。

当我检查一个字符串是否等于另一个字符串时,我得到了非常奇怪的结果。这是我的 JS:

function assignColor() {
var test = ["JackBean", "MrX", "SuperMan", "BobHemsworth", "SomeoneElse", "AnotherSomeone"]
var list_existing = ["JackBean", "MrX", "SuperMan", "BobHemsworth"];
length_of_existing = list_existing.length;

i=0;
while ( i < test.length ) {
var person_in_list = test[i]

for ( var j=0; j <= parseInt(length_of_existing); j++) {

if ( person_in_list === list_existing[j]) {
console.log("equal");
}
else {
console.log("not equal");
list_existing.push(person_in_list);
}
}
++i;
}
console.log(list_existing);
}

我得到的 list_existing 的输出如下:

["JackBean", "MrX", "SuperMan", "BobHemsworth", "JackBean", "JackBean", "MrX", "SuperMan", "BobHemsworth"]

这可能简单得令人沮丧。但我尝试了几种不同的组合来成功比较两个字符串......但不成功。

最佳答案

您可以使用 Set 轻松做到这一点,它根据定义保存唯一值 - 因此您所要做的就是 concat() 两个数组,用它们创建一个新的 Set,然后您就得到了结果:

var test = ["JackBean", "MrX", "SuperMan", "BobHemsworth", "SomeoneElse", "AnotherSomeone"]
var list_existing = ["JackBean", "MrX", "SuperMan", "BobHemsworth"];

let set = new Set(list_existing.concat(test));
let result = [...set];
console.log(result);

关于javascript - 测试两个字符串是否相等会给出奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42442376/

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