javascript - 如何检查对象属性是否已在用户提供的参数中设置?

标签 javascript underscore.js

我有一个方法,它接受一个对象作为参数,并且需要所有预期的属性,否则我想抛出错误。这样做的最佳实践是什么。用Underscore的_.map可以轻松完成吗或者类似的东西?

我所说的“必需”不是nullundefined .

最佳答案

您可以使用_.intersectionObject.keys:

function yourFunc(args) {
    if(_.intersection(["name", "secondName", "age"], Object.keys(args)).length != 3) {
        throw Error("Check your arguments: something is missing!");
    }
}

请注意,如果参数不是从原型(prototype)实例化的,这种检查将会起作用。 From Mozilla Development network :

The Object.keys() method returns an array of a given object's own enumerable properties, in the same order as that provided by a for...in loop (the difference being that a for-in loop enumerates properties in the prototype chain as well).

关于javascript - 如何检查对象属性是否已在用户提供的参数中设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23323439/

相关文章:

javascript - Angular JS 将对象复制到另一个对象到 for 循环中

jquery - 凉亭 + gulp : main-bower-files fails to grab backbone-amd and underscore-amd?

javascript - 对数组和索引进行排序

underscore.js - 下划线js_.each方法和_.invoke方法的区别

node.js - 在 NodeJS 中操作数据的最佳方法是什么?

javascript - 数据列表如何获取选定的名称而不是值

javascript - 我应该使用 ref 还是 findDOMNode 来获取元素的 react 根 dom 节点?

php - 使用 Drupal 的在线体育博彩网站

javascript - 如何使用 redux 对项目进行排序

backbone.js - 错误 : a url property or function must be specified