gpt4 book ai didi

javascript - 判断 Javascript 中的对象是否具有任何属性

转载 作者:行者123 更新时间:2023-12-03 11:14:10 28 4
gpt4 key购买 nike

我有一个看起来像这样的对象:

var searchFilter = {_id: XXX, approved: true}

用于驱动 Meteor 集合搜索过滤器。然后,我有一对文本框,允许用户输入一系列日期,在这种情况下,我更新过滤器以触发 Meteor react 性地重新运行过滤器,如下所示:

// Some Meteor event-handler...
var val = // code to pull val in...not important...
var searchFilter = Session.get('searchFilter');
if (!val || val === '') {
delete searchFilter.created_on;
} else {
searchFilter.created_on = {$gte: new Date(val)};
}
Session.set('searchFilter', searchFilter);

删除 create_on 子对象的 else 非常适合一个字段,但在我的代码中,我有两个字段,一个用于开始范围,一个用于结束范围。我需要做的是删除created_on:{$gte},然后检查created_on是否为“空”,如果是,则删除整个内容。不过,我不确定如何去做。这可能吗?我可以访问 jQuery 和 underscore.js 作为库,如果有帮助的话。

最佳答案

您可以使用Object.getOwnPropertyNames查看对象上是否定义了任何属性。这将返回一个属性名称数组,因此只需检查它的长度是否大于 0。

// create the filter with $gte set
var searchFilter = {};
searchFilter.created_on = {$gte: new Date(56378563786)};

// check if any properties are defined
var hasProps = Object.getOwnPropertyNames(searchFilter.created_on).length > 0;
alert("Has properties: " + hasProps);

// now delete $gte

delete searchFilter.created_on.$gte;

// check if any properties are defined
var hasProps = Object.getOwnPropertyNames(searchFilter.created_on).length > 0;
alert("Has properties: " + hasProps);

关于javascript - 判断 Javascript 中的对象是否具有任何属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27428100/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com