【问题标题】:How can I verify if 2 JavaScript Objects have the same keys or not如何验证 2 个 JavaScript 对象是否具有相同的键
【发布时间】:2020-08-26 15:40:51
【问题描述】:

我正在尝试比较 2 个大型 JavaScript 对象,每个对象有大约 200 个键,这些键是无序的,并且每个 JavaScript 对象都有不同的值,但我只关心它们都具有相同集合的键即使它们的顺序不同,该功能仍会返回 true 的键

我尝试了以下代码,但没有成功

var cp = function (nl,en) {
let x= Object.keys(nl);
let y= Object.keys(en);
for (xel in x){
    if (!y[xel]){
        console.log("missing key en ", xel);
    }
}}

例子:

{"key1": "val", "key2": "sdsfaf"}
{"Key2": "val", "key1": "vsdsdsd"}
This should return true
{"key1": "val", "key2": "sdsfaf"}
{"Key2": "val"}
This shouldn't

【问题讨论】:

  • Object.keys(arr) 然后逐个元素地遍历它们。
  • JSON 是字符串格式。字符串没有键。
  • 列出所有键,对键列表进行排序,将排序后的键列表连接成一个字符串,比较字符串是否相等...Object.keys(nl).sort().join(',') === Object.keys(en).sort().join(',')

标签: javascript


【解决方案1】:

使用new Set(Object.keys(a))new Set(Object.keys(b)) 获取对象的键集。

然后将它们与例如进行比较。 comparing ECMA6 sets for equality

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 2018-07-19
    • 2020-02-20
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    相关资源
    最近更新 更多