javascript - 如何检查两个 javascript 对象是否具有相同的字段?

标签 javascript

给定:

我在 Javascript 中有以下两个变量:

var x = {
            dummy1: null
            dummy2: null
        };

// Return true
var y = {
            dummy1: 99,
            dummy2: 0
        }

// Return false
var y = "";


// Return false
var y = {
            dummy1: null
        };

// Return false
var y = {
            dummy1: null,
            dummy2: null,
            dummy3: 'z'
        }

// Return false
var y = null;

// Return false
var y = ""

谁能建议我如何检查对象 x 是否具有与 y 相同的字段名称?请注意,我不是检查参数的值。

最佳答案

这些函数可能有更好的名称,但应该这样做:

function hasAllProperties(subItem, superItem) {
    // Prevent error from using Object.keys() on non-object
    var subObj = Object(subItem),
        superObj = Object(superItem);

    if (!(subItem && superItem)) { return false; }

    return Object.keys(subObj).every(function (key) {
        return key in superObj;
    });
}

function allPropertiesShared(x, y) {
    return hasAllProperties(x, y) && 
           hasAllProperties(y, x);
}

关于javascript - 如何检查两个 javascript 对象是否具有相同的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24032654/

相关文章:

php - 根据浏览器在 Yii 中引用不同的 js 文件

Javascript 代码在控制台中有效,但在 HTML 中无效(点击功能)

javascript - 如何在 Vanilla JavaScript 中使我的自定义范围/ slider 随动器 div 与范围拇指完美居中

javascript - 不使用节点或替代方案的 VSCode ESlint?

javascript - 调用 Forecast.io api 的 AJAX 请求时出错

javascript - TypeScript 中哪种创建对象实例的方式最快?

javascript - 为什么我的代码没有在 HTML5 游戏中定义渲染?

c# - Kendo 网格、虚拟滚动、页面大小和聚合

javascript - 用错误修饰 JavaScript Promise

javascript - 在JS中读取CakePHP Cookie值