【问题标题】:How to push a new value to an existing key? Javascript如何将新值推送到现有键? Javascript
【发布时间】:2019-11-26 21:38:14
【问题描述】:

如何将新值推送到学期?非常感谢您的帮助。

var students = {
   "name":"John", "semester":30
   "name":"Anna", "semester":12

}

Wanted output:

var students {
   "name":"John", "semester":30,8
   "name":"Anna", "semester":12,4

}

【问题讨论】:

  • 学期是Array,还是您真的想将这些值连接到一个字符串中?
  • 我认为您的Object 不会按照您想要的方式处理数据; name: "John"semester: 30 没有以任何方式链接,但您的格式表明您认为它们会是 - 您还缺少 =,所以它应该是 var students = {
  • 目前学期是一个整数,因此你不能推送一个新值,它不是一个数组
  • 我需要将这些值连接到一个字符串中。

标签: javascript object key


【解决方案1】:

首先是这样的:

var students = {
   "name":"John", "semester":30
   "name":"Anna", "semester":12

};

相当于这个:

var students = {
   "name":"Anna", "semester":12
};

因为您通过多次声明它们来有效地更新对象的namesemester 键。

如果您需要 names 和 semesters 值的集合,那么最好使用基于数组的解决方案。像这样:

var students = {
   "name":["John"], "semester":[30]
};

然后只需访问所需的属性和push 值即可。例如:

students.name.push("Anna");
students.semester.push(12);

如果在某些时候您需要将数组元素作为单个字符串,那么只需执行以下操作:

students.names.join(',');
students.semester.join(',');

这将以逗号分隔的字符串形式返回您的元素。如果您想要的不是数组元素之间的逗号,只需将join 中的, 更改为它即可。

请注意,您也可以将对象声明为:

var students = {
   "name":[], "semester":[]
}

如果您在声明时不知道键的任何值。

【讨论】:

  • @Light OP 说pushjoin。此外,关于您的回答,您的代码中存在逻辑错误,此外,OP 当然没有提及 nested objects
猜你喜欢
  • 2017-10-09
  • 2021-12-27
  • 2014-08-08
  • 1970-01-01
  • 2017-03-07
  • 2012-05-15
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
相关资源
最近更新 更多