![](/img/trans.png)
[英]Compare and push the right value to Array of objects in JavaScript/TypeScript
[英]TypeScript/JavaScript array value push
我有這個對象:keyValue:{key:string,value:number} [];
我想從兩個值向此數組添加一個新元素,如下所示:
let tmpTabKV : { key : string , value : number}[];
[...]
tmpTabKV.push({projet.libelle, statKV.value});
[...]
keyValue = tmpTabKV;
我嘗試了多種語法,然后看到了這一點: 如何將鍵/值對添加到JavaScript對象?
但是我看不到創建新對象的任何鍵。 數組的使用使我出錯
tmpTabKV.push(Array(projet.libelle, statKV.value));
您應該將對象文字推入數組
let tmpTabKV : { key : string , value : number}[] = []
tmpTabKV.push({key:projet.libelle, value:statKV.value});
根據let tmpTabKV : { key : string , value : number}[];
做就是了 :
tmpTabKV.push({key: project.libelle, value: statKV.value})
但我想你想要這個:
tmpTabKV.push({[project.libelle]: statKV.value})
我注意到了一些問題:首先,您將一個新對象推入數組,就好像它本身就是一個數組一樣。 也就是說,您依賴於值的位置來映射到鍵的位置。 在對象中,鍵始終是無序的,因此必須始終指定。
tmpTabKV.push({key: project.libelle, value: statKV.value})
您使用{project.libelle, startKV.value}
所做的事情是使用速記語法創建一個對象,該語法在您的示例中不起作用。
在打字稿中,如果要限制對象中的鍵,請實現一個接口。
interface KeyValue { key: string, value: number }
let tmpTabKV: KeyValue[];
// ...
tmpTabKV.push({key: project.libelle, value: number});
您應該推送一個新對象:
interface KeyValuePair{
key: string:
value: number;
}
let tmpTabKV: KeyValuePair[];
tmpTabKV.push(new {key: projet.libelle, value: statKV.value});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.