提问人:Louis.vgn 提问时间:11/11/2021 更新时间:11/11/2021 访问量:120
Javascript 比较对象中至少一个相同的对
Javascript comparing at least one identical pairs in an object
问:
我有两本词典(JS中的对象?),我想比较它们。
在while循环中,我想打印至少一对是相同的(即下面的字典),而不是整个字典是相同的(但如果整个字典相同,则语句仍然必须很明显):True
True
my_dict = {"Text1":"Text1", "Text2":"Text3", "text5":"text5"}
我知道在 python 中它会是这样的:
while any(key == value for key, value in my_dict.items()):
...
else:
...
但是我无法掌握 JavaScript 的正确语法。
答:
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 的速度几乎是原来的两倍。
上一个:第二个或最后一个,但一个
评论
Object.entries(o).some(([key, value]) => key === value)