传播运算符在 console.log 中工作,但在尝试返回或设置变量时不起作用 [重复]

Posted

技术标签:

【中文标题】传播运算符在 console.log 中工作,但在尝试返回或设置变量时不起作用 [重复]【英文标题】:Spread operator working in console.log and not working when trying to return or set in variable [duplicate] 【发布时间】:2021-07-10 08:05:50 【问题描述】:

所以,我有一个扩展运算符的问题,现在真的很烦我。我搜索了很多,但没有任何帮助。

当我使用 console.log(...val) 时,它完美地显示数据而没有任何错误,但是当我尝试 const data = ...val 时,它会抛出错误“预期表达式”

stats &&
            stats.map(val => 
              const title = Object.keys(val)[0]
              const values = Object.values(val)
              console.log('*************', ...values)

              return (
                <div className="stats__stats--chart">
                  <div className="chart-name">
                    <h3>title</h3>
                  </div>
                  <div className="chart-data">
                    <DataChart data=values />
                  </div>
                </div>
              )
            )

我正在使用 React 和 Typescript,并且我知道这应该可以工作,因为我以前做过。 const values 是一个 2D 数组,内部数组保存对象,我想从该数组中提取所有数组,以便可以将它与该图表一起使用,但扩展运算符以某种方式损坏。是否有某种配置可以解决这个问题?这有什么问题

【问题讨论】:

There is no spread operator! 所以,它有点“坏”,就像“它永远无法工作,也从未打算工作”一样。如果您需要Merge/flatten an array of arrays,那么您需要data = val.flat(),但我什至不确定这是否是您所追求的,因为console.log(val) 仍会向您展示一堆绝对不是的数组你会从.flat()得到什么 这正是我所需要的,谢谢。您可以发布答案以便我批准吗?以及为什么它在 console.log() 中起作用 【参考方案1】:

我不确定您如何使用这些值,但如果您使用 DataChart 组件中的数据,您应该使用 [...data[0], ...data[1]] 作为变量。

【讨论】:

以上是关于传播运算符在 console.log 中工作,但在尝试返回或设置变量时不起作用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

%符号如何在javascript中工作[重复]

整数文字 '115000159351' 在存储到 'Int' 时溢出,但在一个项目中工作正常,但在另一个项目中工作正常 - Swift

jquery 不在部署中工作,但在本地 nuxtjs 中工作?

Jquery 表单提交不能在 chrome 中工作,但在 Firefox 中工作

如何使 jQuery AutoComplete 功能在 Durandal 中工作?

将 Trace 数据保存到存储在发布后无法在 Azure 中工作,但在开发环境中工作