Javascript Object.entries循环只返回第一个条目
我有一个像这样的对象:Javascript Object.entries循环只返回第一个条目,javascript,Javascript,我有一个像这样的对象: myObject = {a: 'hello', b: 2323, c: 123} 我尝试使用以下函数循环并返回每个条目的键和值: returnSomeData(myObject) { for (const [key, value] of Object.entries(myObject)) { return ( `${key}: ${value}` ); } } 目前,只返回第一个条目(a:hello)。有人知道为什么我没有得到对象中的
myObject = {a: 'hello', b: 2323, c: 123}
我尝试使用以下函数循环并返回每个条目的键和值:
returnSomeData(myObject) {
for (const [key, value] of Object.entries(myObject)) {
return (
`${key}: ${value}`
);
}
}
目前,只返回第一个条目(a:hello)。有人知道为什么我没有得到对象中的所有条目吗?您是从
for
循环的第一次迭代返回的。return
语句使for
循环完全无用。您应该将结果分组到一个数组中,然后在for
循环完成后返回它们:
returnSomeData(myObject) {
const results = [];
for (const [key, value] of Object.entries(myObject)) {
results.push(
`${key}: ${value}`
);
}
return results;
}
您也可以像这样使用map
:
returnSomeData(myObject) {
return Object.entries(myObject).map(([key, value]) => `${key}: ${value}`);
}
示例:
函数returnSomeData(myObject){
返回Object.entries(myObject.map([key,value])=>`${key}:${value}`);
}
让myObject={a:'你好',b:2323,c:123};
让结果=返回一些数据(myObject);
控制台日志(结果)代码>使用console.log而不是return。当您返回时,函数停止运行,或者您想使用另一个函数。因为您在for循环中返回一个结果,它当然会返回。Return意味着Return(返回到父堆栈),它意味着函数会产生一个结果,并且在返回后不会执行代码。当您考虑循环某些内容并开始为
编写时,请慢慢停止编写,深呼吸,删除
中的,然后查看文档中的映射
,filter
甚至reduce
:)感谢您的反馈:)之前我一直在遵循这个示例:不客气:)我试图解释接受答案的评论中的差异。对于第二个选项,在那里放一个回车键,或者使用箭头函数,放下卷发,不用回车键即可使用。太好了,非常感谢!我以前也有过这样的例子:@Patrick1904,你的情况有点不同。您在这里提供的教程是一个在for
循环中执行操作的示例。本例中有console.log
。您可以在for循环中执行操作,但不能像那样返回所有项。您需要将它们推到其他地方,或者最好使用像这里这样的map
。@devserkan,是的,谢谢您解释这是有意义的。