Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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属性delete if false if true nothing循环_Javascript_Loops_Object_For Loop_Methods - Fatal编程技术网

javascript属性delete if false if true nothing循环

javascript属性delete if false if true nothing循环,javascript,loops,object,for-loop,methods,Javascript,Loops,Object,For Loop,Methods,我需要通过对象键循环,如果属性为false,则删除键属性。到目前为止,这就是我所拥有的,但我不知道我做错了什么 function onlyTheTruthy() { onlyTheTruthy.key; var prop; for (key in onlyTheTruthy){ if (key != true) { delete onlyTheTruthy.key.prop } else { } } return onlyThe

我需要通过对象键循环,如果属性为false,则删除键属性。到目前为止,这就是我所拥有的,但我不知道我做错了什么

function onlyTheTruthy() { 
 onlyTheTruthy.key;
  var prop;

  for (key in onlyTheTruthy){
    if (key != true) {
     delete onlyTheTruthy.key.prop
    }
  else {
       }

  }
  return onlyTheTruthy;

};

for…In
循环中,使用
键访问对象上的值。这是用括号完成的,如
obj[key]

function onlyTheTruthy(obj) {

  for (var key in obj) {
    if (!obj[key]) {
      delete obj[key];
    }
  }

  return obj;
}
这是你的密码

行:

  • 您可以声明一个名为
    的函数,该函数名为onlyTheTruthy
    ,不带任何参数。然而,我认为应该采取一种方式:
    o
  • 这条线没用。它应该被移除
  • 设置变量
    prop
    的范围,但不给它任何值。好的
  • 一个循环。你可能想确切地研究它的作用。除了第2行之外,以前从未见过
    变量,但这是一个不同的变量:一个
    onlythtruthy
    属性。此外,您正在循环使用所属函数的键:
    onlythtruthy
    。我相信这不是你想要的。尝试:

    for (prop in o) {
    
  • 检查
    是否不等于true。布尔值用作对象键的情况不太常见。也许:

    if (!o[prop]) { // Or, more verbosely:
    if (o[prop] === false) {
    
  • 查找(
    []

  • 其他
    。不
    或者
    怎么样?你知道,这不是必须的
  • }
    关闭
  • 循环中…的
    
    
  • 返回函数本身。不。怎么样
    o
    ?或者,如果最终修改了对象本身,则根本不需要返回
  • 函数声明末尾不需要分号
  • 快乐编码

    固定版本:

    function onlyTheTruthy (o) {
        for (var prop in o) {
            if (!o[prop])
                delete o[prop];
        }
    }
    

    首先:在for…in循环中,键始终是字符串,并且始终是真实的,其次,您做错了什么取决于您试图实现什么,这在您的代码中并不明显,因为代码中有几个奇怪的地方least@muhahmad共享对象的结构。
    function onlyTheTruthy (o) {
        for (var prop in o) {
            if (!o[prop])
                delete o[prop];
        }
    }