在 JavaScript 中用 for...in 循环迭代
Iterating with for... in loop in JavaScript
我有一个名为 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)
的所有值的数组。
- 过滤数组并获取值 >= 2 with
.filter(x => x >= 2)
.
如果您想使用 for ... in
循环 ,那么它会遍历 key
,因此您可以使用 obj[key]
获得值。正如您声明的 for (let values in checkObj)
values
对象将容纳 key
个 checkObj
。因此,您可以使用 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);
这是你想要的吗?
for...in 语句遍历一个对象的所有可枚举属性,它应该是键而不是值。
const checkObj = {
oddNum: 1,
evenNum: 2,
foundNum: 5,
randomNum: 18
};
const objToArray = [];
for (let key in checkObj) {
if (checkObj[key] >= 2) {
objToArray.push(checkObj[key])
}
}
console.log(objToArray)
const checkObj = {
oddNum: 1,
evenNum: 2,
foundNum: 5,
randomNum: 18
};
const objToArray = [];
//changing the loop into a foreach loop that iterates over the keys
Object.keys(checkObj).forEach((key => {
if (checkObj[key]) {
objToArray.push(checkObj[key])
}
}))
试试这个:
const checkObj = {
oddNum: 1,
evenNum: 2,
foundNum: 5,
randomNum: 18
};
const objToArray = [];
for (let [key, value] of Object.entries(checkObj)) {
// console.log(`${key}: ${value}`);
if(value>=2){
objToArray.push(value);
}
}
console.log(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)
}
}
我有一个名为 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)
的所有值的数组。 - 过滤数组并获取值 >= 2 with
.filter(x => x >= 2)
.
如果您想使用 for ... in
循环 ,那么它会遍历 key
,因此您可以使用 obj[key]
获得值。正如您声明的 for (let values in checkObj)
values
对象将容纳 key
个 checkObj
。因此,您可以使用 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);
这是你想要的吗?
for...in 语句遍历一个对象的所有可枚举属性,它应该是键而不是值。
const checkObj = {
oddNum: 1,
evenNum: 2,
foundNum: 5,
randomNum: 18
};
const objToArray = [];
for (let key in checkObj) {
if (checkObj[key] >= 2) {
objToArray.push(checkObj[key])
}
}
console.log(objToArray)
const checkObj = {
oddNum: 1,
evenNum: 2,
foundNum: 5,
randomNum: 18
};
const objToArray = [];
//changing the loop into a foreach loop that iterates over the keys
Object.keys(checkObj).forEach((key => {
if (checkObj[key]) {
objToArray.push(checkObj[key])
}
}))
试试这个:
const checkObj = {
oddNum: 1,
evenNum: 2,
foundNum: 5,
randomNum: 18
};
const objToArray = [];
for (let [key, value] of Object.entries(checkObj)) {
// console.log(`${key}: ${value}`);
if(value>=2){
objToArray.push(value);
}
}
console.log(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)
}
}