Javascript 比较对象中至少一个相同的对

Javascript comparing at least one identical pairs in an object

提问人:Louis.vgn 提问时间:11/11/2021 更新时间:11/11/2021 访问量:120

问:

我有两本词典(JS中的对象?),我想比较它们。

在while循环中,我想打印至少一对是相同的(下面的字典),而不是整个字典是相同的(但如果整个字典相同,则语句仍然必须很明显):TrueTrue

my_dict = {"Text1":"Text1", "Text2":"Text3", "text5":"text5"}

我知道在 python 中它会是这样的:

while any(key == value for key, value in my_dict.items()):
    ...
else:
    ...

但是我无法掌握 JavaScript 的正确语法。

JavaScript Python 算法 字典 比较

评论

0赞 ASDFGerte 11/11/2021
Object.entries(o).some(([key, value]) => key === value)

答:

1赞 2pichar 11/11/2021 #1
for(var key in obj){
    if(key === obj[key]){
        //Do Something
    } else {
        //Do Something Else
    }
}

它遍历对象,如果键等于值,则它执行某些操作,否则执行其他操作。

1赞 Suhas 11/11/2021 #2

您可以在 JavaScript 数组上使用 some() 函数,我认为这与 Python 中的函数相同。any

let my_dict = {"Text1":"Text1", "Text2":"Text3", "text5":"text5"}

let same_exists = Object.keys(my_dict).some((key) => key === my_dict[key])
console.log(same_exists)

2赞 Tushar Shahi 11/11/2021 #3

使用 Object.entries() 和 some() 时,这是一个单行代码:

let my_dict = {"Text1":"Text1", "Text2":"Text3", "text5":"text5"}

let answer = Object.entries(my_dict).some(([key,value]) => key == value);

console.log(answer)

评论

0赞 Suhas 11/14/2021
Object.entries 是最慢的解决方案。应该避免。Object.keys 的速度几乎是原来的两倍。