Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/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_For In Loop - Fatal编程技术网

Javascript 删除对象中的错误值

Javascript 删除对象中的错误值,javascript,object,for-in-loop,Javascript,Object,For In Loop,我试图循环一个对象中的所有属性,删除所有错误,然后返回使用delete传入的对象。显然我做错了什么。。。这是我到目前为止写的代码 var obj = { a: undefined, b: "banana", c: 0, d: false, e: "", f: "apple", g: 23 } var truthy = function (obj) { for (var i in obj) { if (obj[i] === null || obj[i] ===

我试图循环一个对象中的所有属性,删除所有错误,然后返回使用delete传入的对象。显然我做错了什么。。。这是我到目前为止写的代码

var obj = {
  a: undefined,
  b: "banana",
  c: 0,
  d: false,
  e: "",
  f: "apple",
  g: 23
}

var truthy = function (obj) {
  for (var i in obj) {
  if (obj[i] === null || obj[i] === undefined) {
  delete obj[i];
  }
 } return obj;
}
这是一个实际的问题: 创建一个函数,该函数接受一个对象,循环遍历其所有属性,并删除所有错误的属性。然后返回传入的对象。提示:删除

返回对象是多余的,因为您正在修改传入的对象。如果要返回一个新对象并过滤掉属性,请在函数中创建一个新对象,并将要保留的属性复制到其中。 您对falsy的定义与JavaScript的定义不完全一致。如果你想要和其他地方一样的谎言,就说“如果”!obj[i]。当然,假设这是你想要的,但不考虑假法尔西有点傻。 您的实际问题是什么?

演示如下:

var obj={ 答:未定义, b:香蕉, c:0, d:错, e:, f:苹果, g:23 } var truthy=函数obj{ 对于obj中的var i{ if!obj[i]{ 删除obj[i]; } } 返回obj; }; console.logtruthyobj 根据MDN,falsy的意思是:

falsy值是在布尔上下文中求值时转换为false的值

JavaScript在布尔上下文中使用类型强制。

因此,如果要删除所有falsy值,请将条件更改为if!obj[i]检查falsy值并在下一行中删除

参考:

JsFiddle: 第条:
我会做uu.pickByobj,uu.identity;它将只返回具有真实值的对象

这不会删除false,例如,这不被视为falsy吗?这是实际的问题:创建一个函数,该函数接受对象,循环其所有属性,并删除任何falsy。然后返回传入的对象。提示:在这种情况下,除了falsy的定义之外,您的代码看起来非常正确。对于皮带和支架,还可以防止处理原型链中的值hasOwnProperty@wildcrazy-听起来像是家庭作业!不管怎样,这回答了这个问题,这就像做一件事一样简单!obj[i]>
if (false)
if (null)
if (undefined)
if (0)
if (NaN)
if ('')
if (document.all) [1]