Мне нужно написать новые свойства для свойства комментария, не стирая его. Это мой объект сейчас:
product:
{
name: 'name',
briefPDescription: 'text',
details:
{
about: 'text',
description: 'text',
comment:
{
"text": 'text'
},
subDescription: 'text'
}
Что нужно написать:
author:
{
name: 'name',
position: 'text',
photo: '../avatar.png'
}
Как это должно быть:
product:
{
name: 'name',
briefPDescription: 'text',
details:
{
about: 'text',
description: 'text',
comment:
{
text: ''text',
name: 'name',
position: 'text',
photo: '../avatar.png'
},
subDescription: 'text'
}
Я сделал это:
product.comment = author;
Но он удалил свойство text
.
Как я могу записать новые свойства в свойство комментария, не стирая его?
Попробуй это:
product.details.comment = {...product.details.comment, ...author};
Дополнительные сведения об операторе Spread см. в файле документация.
Вам нужно будет использовать product.details.comment
Вы можете использовать синтаксис оператора распространения, чтобы а) сохранить все значения, которые уже были внутри product.details.comment
, и б) добавить значения author
:
var product = {
name: 'name',
briefPDescription: 'text',
details: {
about: 'text',
description: 'text',
comment: {
"text": 'text'
},
subDescription: 'text'
}
}
var author = {
name: 'name',
position: 'text',
photo: '../avatar.png'
}
product.details.comment = { ...product.details.comment, ...author}
console.info(product)
Вы можете использовать Объект.назначить
let product = {name:'name',briefPDescription:'text',details:{about:'text',description:'text',comment:{"text":'text'},subDescription:'text'}};
let author = {name:'name',position:'text',photo:'../avatar.png'};
Object.assign(product.details.comment, author);
console.info(product);
вот простая хитрая функция, полученная от компилятора typescript;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Вызов:
product = __assign({}, product, { comment: author });
Это должно помочь.... как уже ответили.. stackoverflow.com/questions/171251/…