正在为…进行迭代。。。JavaScript中的in-loop
我有一个名为objToArray的空数组。如果键的值大于或等于2,我尝试使用for-in循环用hash-checkObj对象中的所有数字填充数组正在为…进行迭代。。。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
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)
}
}