JQuery或Underscore等同于JavaScript的hasOwnProperty

时间:2015-01-11 17:10:38

标签: javascript jquery arrays underscore.js

获取以下对象数组:

var array = [
{
  name: 'joe',
  job: 'jack in the box',
  age: 28,
},
{
  name: 'john',
  job: 'mcdonalds',
  age: 34,
},
{
  name: 'frank',
  job: 'wendys',
}
];

我有一个函数,我写了一个函数来查找JavaScript和下划线的平均年龄。但是,首先我需要告诉函数,如果“age”属性不存在,那么在进入函数之前将该年龄分配给0岁,否则您将获得NaN。

所以,这就是我在JavaScript中的表现方式,它的工作原理如下:

for (var i = 0; i < array.length; i++) {
    if (!array[i].hasOwnProperty('age')) {
        array[i].age = 0;
    }
};

现在,我正在尝试做同样的事情,但只使用jQuery和Underscore。

我尝试使用下划线的inArray(),但似乎这只能查找索引是否在数组中,在这种情况下我需要查看对象中是否有属性,它们本身就是索引数组。

**注意:我是新手并尝试学习,请不要提供完整的答案,而是可能是我自己研究的方法的概念或参考。

谢谢!**

2 个答案:

答案 0 :(得分:3)

当您需要安全引用hasOwnProperty时使用_.has

if (!_.has(array[i], 'age')) {

答案 1 :(得分:2)

hasOwnProperty在vanilla JS中可用并且很漂亮,JQueryunderscore可能没有实现,因为不需要更简单的包装器。