[英]array of objects and adding a function as a property and access other properties using this in typescript
[英]Adding keypairs to an array of objects in typescript
我有这个对象数组,并且在向打字稿中的对象添加更多密钥对时遇到问题。
例如我有这个数组。
accountsOptions:any = [
{'data':
{
'adidas': null,
'google': null
}
}
];
我想在这里添加更多
accountsOptions:any = [
{'data':
{
'adidas': null,
'google': null,
'nike': null,
'apple': null
}
}
];
新值来自另一个数组,我该如何循环(有效)并动态添加更多密钥对? 我是打字稿新手。
您可以使用数组方法,并检查对象是否包含该属性,如果不包含该属性,则将该属性添加到该对象。
检查以下代码片段
"use strict"; var accountsOptions = [ { 'data': { 'adidas': null, 'google': null } } ]; function addProperty(propertyName) { accountsOptions.map(function (account) { if (!account.data.hasOwnProperty(propertyName)) { account.data[propertyName] = null; } }); } addProperty('nike'); console.log(accountsOptions)
希望能帮助到你
您获得对data
对象的引用:
var data:any = accountsOptions[0].data;
...然后循环遍历数组,例如,使用无聊的for
循环(但那里有很多选项;请参阅此问题的答案以了解它们是什么):
for (var i:number = 0; i < yourArray.length; ++i) {
// ...
}
...然后在循环中,使用方括号表示法(请参阅此问题的答案 )向data
对象添加属性:
data[yourArray[i]] = null;
例如:
var data:any = accountsOptions[0].data;
for (var i:number = 0; i < yourArray.length; ++i) {
data[yourArray[i]] = null;
}
但同样,您有几个循环选项。 这是另一个:
var data:any = accountsOptions[0].data;
yourArray.forEach((entry:string) => {
data[entry] = null;
});
尝试accountsOptions[0].data.nike = null
。
很明显,你可以通过循环accountsOptions
使用for
循环。
您可以从这些SO中获得更多的想法: 向javascript中的对象数组添加键值对? 以及如何将键/值对添加到JavaScript对象?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.