Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有流行的Javascript框架提供了修剪对象的实用程序?_Javascript_Object - Fatal编程技术网

是否有流行的Javascript框架提供了修剪对象的实用程序?

是否有流行的Javascript框架提供了修剪对象的实用程序?,javascript,object,Javascript,Object,我们在一个UI不太密集的项目上使用jQuery,而在其他项目上使用ExtJS。不管怎样,我很好奇是否有流行的库,如ExtJS、jQuery或其他库,提供了一个用于“修剪”对象的实用程序?我的意思是,删除不包含值的键 我已经设计了我自己的(天真的)实现,如下所示,所以没什么大不了的。尽管我很好奇,但我相信这可能是有用的。我在谷歌上搜索过“jquery prune object”,但似乎没有值得调查的结果,当然我可能错了;) 函数pruneObj(obj){ var空=[]; for(obj中的va

我们在一个UI不太密集的项目上使用jQuery,而在其他项目上使用ExtJS。不管怎样,我很好奇是否有流行的库,如ExtJS、jQuery或其他库,提供了一个用于“修剪”对象的实用程序?我的意思是,删除不包含值的键

我已经设计了我自己的(天真的)实现,如下所示,所以没什么大不了的。尽管我很好奇,但我相信这可能是有用的。我在谷歌上搜索过“jquery prune object”,但似乎没有值得调查的结果,当然我可能错了;)

函数pruneObj(obj){
var空=[];
for(obj中的var attr){
如果(!obj[attr]){
empty.push(attr);//而不是尝试就地删除元素
}
}
对于(var i=0,n=empty.length;iSo:

(在调用
prunObj(obj)
)之后)是否只是
{}

我不认为有任何库会假设哪些值是“空”的。它对于一个函数来说太具有破坏性/变异性,不能作为一组标准实用函数的一部分

许多库或浏览器都包含一种功能,可以从数组中筛选出不符合特定条件的项。例如:

将筛选出
列表
中在
foo
属性中具有

编辑

进一步考虑,
undefined
似乎被jQuery和.jQuery的
extend
函数都认为是“空的”。jQuery的
undefined
函数可以实现我认为您在
undefined
中的目标,尽管语法稍有不同,并且不会改变传递的参数:

A = { hasFoo: false, count: 0, foo: null, bar: undefined };
B = jQuery.extend({}, A); // B = { hasFoo: false, count: 0, foo: null }

“jQuery”
“Object”
交换为原型等价物。

你是对的,上面的obj在使用了我的pruneObj函数之后就{}。这正是我说我的实现很幼稚的原因;)谢谢你提醒我各种库的过滤功能。但是它们过滤对象而不是你所说的列表吗?不管怎样,这给了我一个更好的研究起点,所以谢谢!
var obj = { hasFoo: false, count: 0 }
list.filter(function(item){
    return !item.foo
})
A = { hasFoo: false, count: 0, foo: null, bar: undefined };
B = jQuery.extend({}, A); // B = { hasFoo: false, count: 0, foo: null }