首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >逐行填充二维数组JavaScript/NodeJS

逐行填充二维数组JavaScript/NodeJS
EN

Stack Overflow用户
提问于 2018-08-11 04:03:28
回答 2查看 54关注 0票数 0

你好,我正在使用JavaScript/NodeJS中的数组。

基本上,下面是我的代码:

代码语言:javascript
复制
let arr = new Array();

arr = {
  "Username" : var1,
  "Console"  : var2,
  "Pseudo"   : var3,
}

console.log(arr);

var1、2和3包含每次都在变化的数据。

让我们考虑一下第一种情况:

  1. var1 is "Johnson"
  2. var2 is "ps4"
  3. var3 is "Johnson46"

上面的代码将显示以下内容:

代码语言:javascript
复制
{ Username: 'Johnson', Console: 'ps4', Pseudo: 'Johnson46' }

现在,如果var1var2var3中的数据发生更改,它将用新数据替换数组的内容。因此,如果是var1 = "Dave"var2 = "xbox"var3 = "Dave78",它将替换当前数组并显示:

{ Username: 'Dave', Console: 'xbox', Pseudo: 'Dave78' }

但我希望我的代码打印以下内容:

  1. { Username: 'Johnson', Console: 'ps4', Pseudo: 'Johnson46' }
  2. { Username: 'Dave', Console: 'xbox', Pseudo: 'Dave78' }

看见?不覆盖数组,只需连续添加我的数据。“逐行”或者“按部就班”,如果你喜欢的话,对不起,我真的不知道怎么说。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-11 04:09:20

您必须将对象推送到数组中,而不是修改它

代码语言:javascript
复制
let arr = new Array();

object1 = {
  "Username" : "Jhon",
  "Console"  : "xbox",
  "Pseudo"   : "asd",
}

arr.push(object1)

object2 = {
  "Username" : "Doe",
  "Console"  : "ps4",
  "Pseudo"   : "efg",
}

arr.push(object2)

console.log(arr);

票数 3
EN

Stack Overflow用户

发布于 2018-08-11 04:13:55

我走的是一条更多的理论路线。也许它会消除你的一些疑虑,也可能不会。

首先,顺便说一句,尽管从技术上讲,Array是一个对象,但{..}是对象而不是数组的符号。如果有一个像{'0':..,'1':..,'2':..}这样的对象,并且它有一个长度属性,那么这个对象就叫做array like object (感谢@Alnitak)

现在,当你声明一个对象,并从变量中添加值时,如果你引用的是一个不可变的对象,比如string,number它会引用这个值本身。如果你在引用一个对象,比如一个对象,它将保存该对象的引用,如果你改变了这个对象,它也会改变。

例如:

代码语言:javascript
复制
const obj = {'a':'b'};

const x = {
    m: obj.a
}
console.log(x);
obj.a = 'c';
console.log(x);

这将打印出来,

代码语言:javascript
复制
{ m: 'b' }
{ m: 'b' }

但是当你的代码是:

代码语言:javascript
复制
const obj = {'a':'b'};

const x = {
    m: obj //referencing obj
}
console.log(x);
obj.a = 'c';
console.log(x);

它将打印:

代码语言:javascript
复制
{ m: { a: 'b' } }
{ m: { a: 'c' } }

所以,如果你想让你的代码只打印它,那么你可以在你的变量中引用一个对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51793393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档