相关疑难解决方法(0)

JavaScript:深层检查对象具有相同的密钥

问题类似于:如何检查两个对象是否具有相同的属性名称集?但只有一个区别

我想查一下:

var objOne = {"a":"one","b":"two","c":{"f":"three_one"}};
var objTwo = {"a":"four","b":"five","c":{"f":"six_one"}};
Run Code Online (Sandbox Code Playgroud)

在所有级别都有相同的密钥集?

例如deepCheckObjKeys(objOne, objTwo)将返回true那里deepCheckObjKeys(objOne, objThree)回报false,如果:

var objThree = {"a":"four","b":"five","c":{"g":"six_one"}};
Run Code Online (Sandbox Code Playgroud)

因为objThree.a.c.fundefinedobjThree.

像这样的函数:

'使用严格';

function objectsHaveSameKeys() {
   for (var _len = arguments.length, objects = Array(_len), _key = 0; _key < _len; _key++) {
      objects[_key] = arguments[_key];
   }

   var allKeys = objects.reduce(function (keys, object) {
      return keys.concat(Object.keys(object));
   }, []);
   var union = new Set(allKeys);
   return objects.every(function …
Run Code Online (Sandbox Code Playgroud)

javascript key javascript-objects

5
推荐指数
1
解决办法
1639
查看次数

如何检查两个地图在JavaScript中是否具有相同的密钥集

假设有两个Map对象,如何检查它们的键集是否相同?

例如:

const A = new Map();
A.set('x', 123);
A.set('y', 345);

const B = new Map();
B.set('y', 567);
B.set('x', 789);

const C = new Map();
C.set('x', 121);
C.set('y', 232);
C.set('z', 434);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,两者AB地图具有相同的密钥集(即['x', 'y']),而密钥集C是不同的,因为它具有额外的密钥z.

javascript dictionary data-structures ecmascript-6 es6-map

0
推荐指数
1
解决办法
90
查看次数