javascript - JS - 使用矛运算符向嵌套对象添加新键
问题描述
我有点困惑。你可以帮帮我吗 ?这很容易,但我无法解决我的问题。
我有这样的树。
[{
label: "Label 1",
colspan: 0,
columns: [
{
data: "Colunm1"
},
{
data: "Column2"
}
]
},
{
label: "Label 2",
colspan: 0,
columns: [
{
data: "Column3",
editor: false
},
{
data: "Column4"
},
{
data: "Column5"
}
]
},
{
label: "Label 3",
colspan: 0,
columns: [
{
data: "Column6"
},
{
data: "Column7"
},
{
data: "Column8"
}
]
}]
如您所见,editor
第二个对象列数组中有一个键。我想editor
使用扩展运算符将键添加到所有对象内的同一级别。
我开始编写代码,但我被卡住了。
this.columns = [...this.columns, ...item.columns];
我也有钩子的this.columns
定义。constructor
所以,我想在这个定义中创建新的副本。上面的数据结构是从另一个文件导入的,我正在迭代它以创建列数组的新副本。
解决方案
我假设您想editor: false
在每一列中添加。
const tree = [{
label: "Label 1",
colspan: 0,
columns: [
{
data: "Colunm1"
},
{
data: "Column2"
}
]
},
{
label: "Label 2",
colspan: 0,
columns: [
{
data: "Column3",
editor: false
},
{
data: "Column4"
},
{
data: "Column5"
}
]
},
{
label: "Label 3",
colspan: 0,
columns: [
{
data: "Column6"
},
{
data: "Column7"
},
{
data: "Column8"
}
]
}]
const res = tree.map(ele => {
const columns = ele.columns.map(c => ({...c, editor: false }))
ele = {...ele, columns}
return ele
})
console.log(res)
推荐阅读
- mysql - 我们可以在SQL中对上期的总和进行分组吗
- r - 使用 if 条件,如果我们只有一个观察值,则只使用这段代码,如果我们有多个观察值,则跳过代码
- gitlab-ci - gitlab runner 不适用于特定项目
- authentication - 使用 OAuth2 进行身份验证时看起来如何
- apollo - apollo-link-http 包中的 new HttpLink 和 createHttpLink 的区别
- java - 用逗号分割字符串并将所有分割字符串居中
- symfony - Symfony 为单一语言使用多个翻译文件
- antlr - ANTLR4 带有贪婪 * 量词的谓词:避免不必要的谓词调用(lexing)
- python - 如何在 docx 中使列宽动态化?
- php - 带有 Stripe 的 Laravel 返回“没有这样的计划:1 错误”