Object.entries循环仅返回第一个条目

时间:2018-08-23 21:57:47

标签: javascript

我有一个看起来像这样的对象:

myObject = {a: 'hello', b: 2323, c: 123}

我正在尝试遍历并使用以下功能返回每个条目的键和值:

returnSomeData(myObject) {
 for (const [key, value] of Object.entries(myObject)) {
    return (
      `${key}: ${value}`
    );
  }
}

当前,仅返回第一个条目(a:hello)。有谁知道为什么我没有在对象中得到所有条目?

2 个答案:

答案 0 :(得分:3)

您将从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}`);
}

示例:

function returnSomeData(myObject) {
  return Object.entries(myObject).map(([key, value]) => `${key}: ${value}`);
}

let myObject = {a: 'hello', b: 2323, c: 123};
let result = returnSomeData(myObject);
console.log(result);

答案 1 :(得分:0)

使用console.log而不是返回。返回时,该功能停止运行,或者您可能想使用其他功能。