你好,我正在使用JavaScript/NodeJS中的数组。
基本上,下面是我的代码:
let arr = new Array();
arr = {
"Username" : var1,
"Console" : var2,
"Pseudo" : var3,
}
console.log(arr);
var1、2和3包含每次都在变化的数据。
让我们考虑一下第一种情况:
上面的代码将显示以下内容:
{ Username: 'Johnson', Console: 'ps4', Pseudo: 'Johnson46' }
现在,如果var1
、var2
和var3
中的数据发生更改,它将用新数据替换数组的内容。因此,如果是var1 = "Dave"
、var2 = "xbox"
和var3 = "Dave78"
,它将替换当前数组并显示:
{ Username: 'Dave', Console: 'xbox', Pseudo: 'Dave78' }
但我希望我的代码打印以下内容:
{ Username: 'Johnson', Console: 'ps4', Pseudo: 'Johnson46' }
{ Username: 'Dave', Console: 'xbox', Pseudo: 'Dave78' }
看见?不覆盖数组,只需连续添加我的数据。“逐行”或者“按部就班”,如果你喜欢的话,对不起,我真的不知道怎么说。
发布于 2018-08-11 04:09:20
您必须将对象推送到数组中,而不是修改它
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);
发布于 2018-08-11 04:13:55
我走的是一条更多的理论路线。也许它会消除你的一些疑虑,也可能不会。
首先,顺便说一句,尽管从技术上讲,Array
是一个对象,但{..}
是对象而不是数组的符号。如果有一个像{'0':..,'1':..,'2':..}这样的对象,并且它有一个长度属性,那么这个对象就叫做array like object
(感谢@Alnitak)
现在,当你声明一个对象,并从变量中添加值时,如果你引用的是一个不可变的对象,比如string,number它会引用这个值本身。如果你在引用一个对象,比如一个对象,它将保存该对象的引用,如果你改变了这个对象,它也会改变。
例如:
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' } }
所以,如果你想让你的代码只打印它,那么你可以在你的变量中引用一个对象。
https://stackoverflow.com/questions/51793393
复制相似问题