正在为…进行迭代。。。JavaScript中的in-loop

正在为…进行迭代。。。JavaScript中的in-loop,javascript,for-in-loop,Javascript,For In Loop,我有一个名为objToArray的空数组。如果键的值大于或等于2,我尝试使用for-in循环用hash-checkObj对象中的所有数字填充数组 const checkObj={ 奥德纳姆:1, 平均数:2, foundNum:5, 随机数:18 }; 常量objToArray=[]; for(让值在checkObj中){ if(对象值(checkObj)>=2){ objToArray.push(检查obj.values()) } } 控制台日志(objToArray)尝试使用对象.值(ch

我有一个名为objToArray的空数组。如果键的值大于或等于2,我尝试使用for-in循环用hash-checkObj对象中的所有数字填充数组

const checkObj={
奥德纳姆:1,
平均数:2,
foundNum:5,
随机数:18
};
常量objToArray=[];
for(让值在checkObj中){
if(对象值(checkObj)>=2){
objToArray.push(检查obj.values())
}
}

控制台日志(objToArray)尝试使用
对象.值(checkObj).filter(x=>x>=2)

  • 使用
    Object.values(checkObj)
    获取所有值的数组
  • 使用
    筛选数组并获取值>=2。筛选(x=>x>=2)
  • 如果您想将
    用于。。。在
    循环中
    然后它在
    键上迭代
    ,这样您就可以使用
    obj[key]
    获得值。正如您所声明的
    for(让checkObj中的值)
    对象将持有
    checkObj的
    。因此,您可以使用
    checkObj[values]
    访问值

    检查下面的输出

    const checkObj={
    奥德纳姆:1,
    平均数:2,
    foundNum:5,
    随机数:18
    };
    //方法1
    让result=Object.values(checkObj.filter)(x=>x>=2);
    控制台日志(结果);
    //方法2
    常量objToArray=[];
    for(让值在checkObj中){
    if(checkObj[values]>=2){
    objToArray.push(检查obj[values]);
    }
    }
    控制台日志(objToArray)这是你想要的吗

    for…in语句迭代已设置键的对象的所有可枚举属性,它应该是键而不是值

    const checkObj={
    奥德纳姆:1,
    平均数:2,
    foundNum:5,
    随机数:18
    };
    常量objToArray=[];
    for(输入checkObj){
    如果(检查对象[键]>=2){
    objToArray.push(选中obj[键])
    }
    }
    console.log(objToArray)
    尝试以下操作:

    const checkObj={
    奥德纳姆:1,
    平均数:2,
    foundNum:5,
    随机数:18
    };
    常量objToArray=[];
    for(让Object.entries的[key,value](checkObj)){
    //log(`${key}:${value}`);
    如果(值>=2){
    推送(值);
    }
    }
    控制台日志(objToArray)试试这个

    const checkObj = {
      oddNum: 1,
      evenNum: 2,
      foundNum: 5,
      randomNum: 18
    };
    
    let objToArray = [];
    objToArray = Object.values(checkObj).filter(elem => elem >= 2);
    console.log(objToArray);
    

    试试这个:我希望你得到了

    let checkObj = {
      oddNum: 1,
      evenNum: 2,
      foundNum: 5,
      randomNum: 18
    };
    
    let objToArray = [];
    
    for (let values of Object.values(checkObj)) {
      console.log(values);
      if (values >=2 ) {
        objToArray.push(values)
        }
    }
    

    Object.values(checkObj)>=2
    替换为
    checkObj[values]>=2
    ,将
    objToArray.push(checkObj.values())
    替换为
    objToArray.push(checkObj[values])
    。这非常有效。所以基本上,checkObj[values]等同于散列对象中的值?是的,在
    checkObj
    中,您可以使用
    checkObj.oddNum
    checkObj[“oddNum”]
    let key=“oddNum”访问
    checkObj[key]
    将返回相同的值。除了显示问题的有效解决方案外,还需要解释OP提案中的错误,以便他们可以从中学习。@viam0Zah谢谢,当然我以后会继续这样做,因为你已经在迭代
    checkObj
    key
    ,你不需要检查
    ,如果(checkObj.hasOwnProperty(property)){
    ,它将始终是
    真的
    。啊,对了,没想清楚。编辑。
    let checkObj = {
      oddNum: 1,
      evenNum: 2,
      foundNum: 5,
      randomNum: 18
    };
    
    let objToArray = [];
    
    for (let values of Object.values(checkObj)) {
      console.log(values);
      if (values >=2 ) {
        objToArray.push(values)
        }
    }