如何解决如何使用javascript或lodash将对象替换为新对象?
我的数据结构如下,
const data = {
getSomething: {
id: '1',items: [
{
id: '1',orders: [
{
id: '1',name: 'one1',}
],subItems: [
{ id: '1',name: 'subitem1' },{ id: '2',name: 'subitem2' },],},{
id: '2',orders: [
{
id: '2',name: 'two1',subItems: [
{ id: '2',{ id: '3',}
],}
}
现在我还有另一个如下数据,
const item1 = {
id: '2',orders: [
{
id: '3',}
我必须用上面的item1替换数据中ID为1的项目。我如何使用lodash做到这一点。或其他任何我可以轻松做到的方式。
有人可以帮我这个忙吗?谢谢。
解决方法
const data = {
getSomething: {
id: '1',items: [{
id: '1',orders: [{
id: '1',name: 'one1',}],subItems: [{
id: '1',name: 'subitem1'
},{
id: '2',name: 'subitem2'
},],},{
id: '2',orders: [{
id: '2',name: 'two1',subItems: [{
id: '2',{
id: '3',}
],}
}
const item1 = {
id: '2',orders: [{
id: '3',}
Object.assign(data.getSomething.items.find(item => item.id === item1.id),item1);
console.log(data);
,
这将覆盖具有item1的数据中ID为1的项目:
const data = {
getSomething: {
id: '1',items: [
{
id: '1',orders: [
{
id: '1',}
],subItems: [
{ id: '1',name: 'subitem1' },{ id: '2',name: 'subitem2' },{
id: '2',orders: [
{
id: '2',subItems: [
{ id: '2',{ id: '3',}
],}
}
const item1 = {
id: '2',orders: [
{
id: '3',}
const oldItem = data.getSomething.items.find(item => item.id == 1);
Object.assign(oldItem,item1);
console.log(data);
,
您看起来像这样吗?
const data = {
getSomething: {
id: '1',name: 'one1.......',name: 'subitem1....' },name: 'subitem2....' },}
let result = data.getSomething.items.map(item=> item.id===item1.id ? ({...item1}): item);
console.log('-----Original----',data.getSomething.items);
console.log('-----Updated-----',result);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。