我的应用中有一个对象,开头为:
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;
}
}
如何在表格中显示?
答案 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
。是否要添加Object
或Array
或Array of Objects
?