【发布时间】: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