【发布时间】:2020-12-07 08:32:48
【问题描述】:
目前正在做关于 JavaScript 的练习题。我的代码返回一个空数组,我不知道为什么:
function values(obj) {
let arr = [];
for (let i in obj) {
for (let j in obj[i]) {
arr.push(obj[i][j]);
}
}
return arr;
}
console.log( values({ a: 1, b: 2, c: 3 }) );
【问题讨论】:
-
如果您尝试获取对象的值,则不需要 2 个循环。你只需要
for (let i in obj) arr.push(obj[i])。此外,还有一个名为 Object.values(obj) 的内置方法,它将对象的值作为数组返回。 -
在您的第二个循环
for (let j in obj[i])中没有任何可迭代的内容。我不确定您的期望是什么,但是没有真正的方法可以遍历键("a"、"b"、"c")或值(1、2、3) .目前尚不清楚您试图用两个循环做什么。理想情况下,您只需要for (let i in obj) { arr.push(obj[i]); }
标签: javascript arrays javascript-objects