【问题标题】:Javascript comparing at least one identical pairs in an objectJavascript比较对象中至少一对相同的对
【发布时间】:2021-12-23 07:12:51
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • Object.entries(o).some(([key, value]) => key === value)

标签: javascript python algorithm dictionary comparison


【解决方案1】:

对于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)

【讨论】:

  • Object.entries 是最慢的解决方案。应该避免。 Object.keys 几乎快两倍。
【解决方案2】:

您可以在 JavaScript 数组上使用 some() function,我认为这与 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)

【讨论】:

    【解决方案3】:
    for(var key in obj){
        if(key === obj[key]){
            //Do Something
        } else {
            //Do Something Else
        }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多