我有一个名为 objToArray 的空数组。如果键的值大于或等于 2,我正在尝试使用 for-in-loop 用哈希 checkObj 对象中的所有数字填充数组。
const checkObj = {
oddNum: 1,
evenNum: 2,
foundNum: 5,
randomNum: 18
};
const objToArray = [];
for (let values in checkObj) {
if (Object.values(checkObj) >=2 ) {
objToArray.push(checkObj.values())
}
}
console.log(objToArray);
到目前为止,我将 objToArray 作为一个空数组,即使它应该包含三个元素并且应该等于 [2, 5, 18]。
最佳答案
试试 Object.values(checkObj).filter(x => x >= 2);
。
- 使用
Object.values(checkObj)
获取所有值的数组。 - 使用
.filter(x => x >= 2) 过滤数组并获取 >= 2 的值
。
如果你想使用 for ... in
循环 那么它会遍历 key
以便你可以通过 obj 获得值(value)[键]
。正如您已声明 for (let values in checkObj)
values
对象将持有 checkObj
的 key
。因此,您可以使用 checkObj[values]
访问值。
检查下面的输出。
const checkObj = {
oddNum: 1,
evenNum: 2,
foundNum: 5,
randomNum: 18
};
// Approach 1
let result = Object.values(checkObj).filter(x => x >= 2);
console.log(result);
// Approach 2
const objToArray = [];
for (let values in checkObj) {
if (checkObj[values] >= 2) {
objToArray.push(checkObj[values]);
}
}
console.log(objToArray);
关于javascript - 在 JavaScript 中循环使用 for... 进行迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62671735/