【发布时间】:2017-02-07 23:47:11
【问题描述】:
我有一个对象数组如下:
const data = [
{
'name': 'A',
'v0': true,
'values': [
{ 'v': true, 'k': 1 },
{ 'v': false, 'k': 2 },
{ 'v': true, 'k': 3 },
{ 'v': false, 'k': 4 }
]'
},
...
]
下面的函数从数据对象中提取参数name、v0和values,并用于通过创建具有属性的单元格数组来呈现表格的一行。
v0 是一个布尔值,根据它的值,渲染函数可能会对单元格应用一些样式。
当值的数量是预先确定的时,这可以正常工作,因为它们可以列出:v0、v1 ...
但是,我有一个值数组,并且想在应用唯一键的同时传播它,如下面的 v0 所示:
const renderBodyRow = ({ name, v0, values }) => ({
cells: [
name,
v0 ? { key: '0', content: v0, color: 'green' } : { key: '0', content: v0, color: 'red' },
...values // need to apply the same, but on the values array
]
})
一种方法是将值作为布尔数组:values: [true, false, true, false]
这需要在 renderBodyRow 函数中创建一个唯一键。这可能吗?
或者将values 数组定义为具有值和键的对象数组。在这种情况下,扩展语法如何能够访问这些对象的属性?
知道如何使用扩展语法实现其中一个(或两个)吗?
谢谢
【问题讨论】:
-
您能分享一下简单的输入(带有 v0 和 v1)和您输入的输出吗?
-
它们可以是布尔值或任何简单类型