如何给JS对象赋值?

尝试在两种情况下为正文分配值,因此响应有时包含有效负载,但是当它作为有效负载出现时,它会将有效负载添加为我粘贴的嵌套对象


主文件


const logError = (message, resp) => {

  const logErrorPayload = {

    status: resp.status,

    body : resp || resp.payload

  };

  logger().error(message,logErrorPayload);

};

回复


{"level":50,"time":1565018976583,"pid":64,"hostname":"76b538d1a1fc","msg":"Error_V1 {\"status\":500,\"body\":{\"status\":500,\"payload\":{\"status\":500,\"title\":\"Internal Server Error\",\"detail\":\"Drug prices are not valid\"}}}","v":1}

预期的


{"level":50,"time":1565018976583,"pid":64,"hostname":"76b538d1a1fc","msg":"Error_V1 {\"status\":500,\"body\":{\"status\":500,\"title\":\"Internal Server Error\",\"detail\":\"Drug prices are not valid\"}}}","v":1}


www说
浏览 347回答 2
2回答

白衣非少年

您可能只是在寻找const logError = (message, resp) => {  const logErrorPayload = {    status: resp.status,    body: resp.payload,  };  logger().error(message, logErrorPayload);};在resp ||使用整个resp对象作为值,至少当resp被一个truthy值(其将预期当它具有一个属性,并且因此是一个对象)。也许您打算使用resp && resp.payload,这可以处理respbe null,但您需要为访问做同样的事情.status:const logError = (message, resp) => {  const logErrorPayload = {    status: resp && resp.status,    body: resp && resp.payload,  };  logger().error(message, logErrorPayload);};或者,鉴于resp没有其他属性,您需要通过构造一个单独的 来省略logErrorPayload,您可以这样做const logError = (message, resp) => {  logger().error(message, resp);};

万千封印

Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。const 目标 = { a: 1, b: 2 }; 常量源 = { b: 4, c: 5 };const ReturnTarget = Object.assign(target, source);控制台日志(目标);// 预期输出:对象 { a: 1, b: 4, c: 5 }控制台日志(返回目标);// 预期输出:对象 { a: 1, b: 4, c: 5 }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript