获取以下对象数组:
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(),但似乎这只能查找索引是否在数组中,在这种情况下我需要查看对象中是否有属性,它们本身就是索引数组。
**注意:我是新手并尝试学习,请不要提供完整的答案,而是可能是我自己研究的方法的概念或参考。
谢谢!**
答案 0 :(得分:3)
当您需要安全引用hasOwnProperty
时使用_.has
:
if (!_.has(array[i], 'age')) {
答案 1 :(得分:2)
hasOwnProperty
在vanilla JS中可用并且很漂亮,JQuery
和underscore
可能没有实现,因为不需要更简单的包装器。