添加到对象角度2

时间:2018-01-10 17:25:44

标签: angular object

我的应用中有一个对象,开头为:

var myObj = {};

用户输入一些值,我想"推送"他们对象的价值。因此,当他们输入一些值时,我希望它是:

myObj = {{item1:"value1",item2:"value2"}};

如果他们输入更多值,我希望数组为:

myObj = {{item1:"newValue1",item2:"newValue2"},{item1:"value1",item2:"value2"}}

依此类推。我尝试使用此代码:

var newObject = Object.assign({}, myObj, {item1:userValue1,item2:userValue2});
myObj = newObject;

但这总是会覆盖那里已有的东西。我确定我没有朝着正确的方向前进,但我不确定如何继续前进。作为第二个问题,我试图在使用* ngFor的表中显示这个新对象,所以我使用自定义管道将其更改为数组:

import { PipeTransform, Pipe } from '@angular/core';

@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
  transform(value, args:string[]) : any {
    let keys = [];
    for (let key in value) {
      keys.push({key: key, value: value[key]});
    }
    return keys;
  }
}

如何在表格中显示?

2 个答案:

答案 0 :(得分:0)

如果要分配给对象设置一些键值对,这是基本的简单Javascript语法:

var a = {};
a["myKey1"] = "myValue1";
a["myKey2"] = "myValue2";


console.log(a); // {myKey1: "myValue1", myKey2: "myValue2"}

无需任何特殊的“推”方法。

答案 1 :(得分:-1)

您可以使用push

这样做
var obj = {};

if(some valid condition){
    obj.push({item : 'value'});
}

如果你正在寻找它,你可以将它包装在一个循环中。

您的myObj = {{item1:"newValue1",item2:"newValue2"},{item1:"value1",item2:"value2"}}实际上正在添加Object。是否要添加ObjectArrayArray of Objects