【问题标题】:"Return" cause of function break. Why?\"返回\" 函数中断的原因。为什么?
【发布时间】:2022-12-20 06:37:20
【问题描述】:

我试图理解一些看似非常简单的事情。

控制台日志(${key}: ${value}- 只要下面的 return 被注释掉就可以工作。
一旦'返回'语句包含在它下面,该函数不起作用,只返回列表的第一个键值。
它返回:一:东西

为什么是 console.log(${key}: ${value}) 和 Return (${key}: ${value}) 可以如此不同,我如何重新格式化以从函数输出完整的键/值列表?我的预期结果是:“a:一些字符串,b:42,c:假”

谢谢!

   const object1 = {
    a: "somestring",
    b: 42,
    c: false,
   };

   const defineKeyValPairs = (data) => {
      console.log(data); //outputs: {a: 'some string', b: 42, c: false}
      for (const [key, value] of Object.entries(data)) {
        console.log(`${key}: ${value}`); // returns "a: somestring, b: 42,c: false" so long as return below is commented out
        // return `${key}: ${value}`; // doesn't work - returns "a: somestring"
    }
   };

   defineKeyValPairs(object1);

【问题讨论】:

  • return字面意思出口或者回去. console.log 将内容打印到控制台。你的问题听起来像:吹风机吹头发,洗衣机洗衣服——怎么会有这么大的不同?
  • 你认为 return 在做什么?
  • 它确实从函数返回一个值,但您只会从该函数返回 1,因此它退出。它与日志记录无关。
  • 所以你想要它 map() 并返回地图的结果。

标签: javascript arrays return javascript-objects


【解决方案1】:

谢谢@Konrad、@epascarello 和@Ivar 的指导。
这是解决方案:

const defineKeyValPairs = (data) => {
    console.log(data);
    return (Object.entries(data).map(([key, value]) => {
        return `${key}: ${value}`;
    }))
};

defineKeyValPairs(object1);

退货:a: somestring, b: 42,c: false正如问题所要求的那样。希望这可以帮助其他人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多