繁体   English   中英

TypeScript / JavaScript数组值推送

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM