逐行填充2D数组JavaScript / NodeJS

时间:2018-08-10 20:03:28

标签: javascript arrays node.js multidimensional-array

你好,我在JavaScript / NodeJS中苦苦挣扎。

基本上,这是我的代码:

let arr = new Array();

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

console.log(arr);

var1、2和3包含我每次更改的数据。

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

  1. var1是“约翰逊”
  2. var2是“ ps4”
  3. var3是“ Johnson46”

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

{ 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' }

看到了吗?无需覆盖数组,只需连续添加我的数据即可。如果愿意,可以“逐行”或“逐步”进行,抱歉,我真的不知道怎么说。

2 个答案:

答案 0 :(得分:3)

您必须将对象推送到数组中,而不要对其进行修改

<input type="file" name="Avatar" accept="image/png, image/jpeg, image/gif" id="profileAvatar"/>

答案 1 :(得分:0)

我将更多地走理论路线。也许它将消除您的一些疑问,也许不会。

首先,附带说明一下,即使Array从技术上来说是一个对象,但是{..}是对象而不是数组的表示法。如果有一个像{'0':..,'1':..,'2':..}这样的对象并且它具有length属性,则称为array like object(感谢@Alnitak)

现在,当您声明一个对象,并在引用诸如字符串之类的不可变对象时,从变量中添加值时,编号将引用值本身。如果您要引用某个对象,它将保留该对象的引用;如果您更改该对象,它也会随之更改。

例如:

const obj = {'a':'b'};

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

这将打印

{ m: 'b' }
{ m: 'b' }

但是当您的代码是:

const obj = {'a':'b'};

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

它将打印:

{ m: { a: 'b' } }
{ m: { a: 'c' } }

因此,如果您只想打印代码,则可以在变量中引用一个对象。