给定对象:

obj = {
      "zozo": {
          "buys": "6",
          "sells": "9"
      },
      "zaza": {
          "buys": "5",
          "sells": "2"
      }
}

我怎么才能把这个化为串zozo: buys(6) sells(9), zaza: buys(5) sells(2)呢?

到目前为止,我所做的最好的事情是:

obj = {
      "zozo": {
          "buys": "6",
          "sells": "9"
      },
      "zaza": {
          "buys": "5",
          "sells": "2"
      }
}
      
res = Object.entries(obj).reduce((x,y) => `${x}, ${y[0]}: buys(${y[1].buys}) sells(${y[1].sells})`, '');
console.log(res);
Which gives me , zozo: buys(6) sells(9), zaza: buys(5) sells(2)

我理解这是因为我传递了一个空字符串作为初始值,但如果我不这样做,则该函数会将一个数组作为初始值.

推荐答案

您可以通过使用Array.prototype.join()连接生成的字符串数组来修改代码:

const obj = {
  "zozo": {
    "buys": "6",
    "sells": "9"
  },
  "zaza": {
    "buys": "5",
    "sells": "2"
  }
};

const res = Object.entries(obj).reduce((accumulator, [key, value]) => {
  const entry = `${key}: buys(${value.buys}) sells(${value.sells})`;
  return accumulator.concat(entry);
}, []).join(", ");

console.log(res);

Javascript相关问答推荐

响应式JS DataTable中的Bootstrap 5弹出程序无法正常工作

为什么子组件没有在reaction中渲染?

如何才能拥有在jQuery终端中执行命令的链接?

如何在RTK上设置轮询,每24小时

yarn安装一个本地npm包,以便本地包使用main项目的node_modules(ckeditor-duplicated-modules错误)

Snowflake JavaScript存储过程返回成功,尽管预期失败

将自定义排序应用于角形数字数组

如何使覆盖div与可水平滚动的父div相关?

有没有可能使滑动img动画以更快的速度连续?

我的角模板订阅后不刷新'

在执行异步导入之前判断模块是否已导入()

在WordPress中使用带有WPCode的Java代码片段时出现意外令牌错误

IF语句的计算结果与实际情况相反

在HTML语言中调用外部JavaScript文件中的函数

当输入字段无效时,我的应用程序不会返回错误

让chart.js饼图中的一个切片变厚?

令牌JWT未过期

Jexl to LowerCase()和Replace()

如何将字符串拆分成单词并跟踪每个单词的索引(在原始字符串中)?

限制数组中每个元素的长度,