无法将对象存储到JavaScript的数组中。

12 浏览
0 Comments

无法将对象存储到JavaScript的数组中。

我试图将对象存储到Javascript数组中。

var res=[
    {name:'Alex',place:'US',age:20},
    {name:'Jason',place:'Canada',age:25}
  ];
var obj={};
var data=[];
for ( let i in res){
    obj.name=res[i].name;
    obj.place=res[i].place;
    data.push(obj);
 }
console.log(data);

我的预期输出:

[ 
  {name:'Alex',place:'US'}.
  {name:'Jason',place:'Canada'} 
]

我得到的实际输出:

[ 
  {name:'Jason',place:'Canada'},
  {name:'Jason',place:'Canada' }
]

为什么会得到这样的输出?

我是新手,请帮助我。

0
0 Comments

无法将对象存储到JavaScript数组中的问题可能是由于以下原因引起的:

1. 代码中没有声明或初始化数组变量。

2. 对象的属性没有正确设置或传递给数组。

为了解决这个问题,可以尝试以下解决方法:

1. 确保代码中有一个已声明和初始化的数组变量。

2. 确保将对象的属性正确地设置或传递给数组。

下面是一个解决该问题的示例代码:

var res=[
    {name:'Alex',place:'US',age:20},
    {name:'Jason',place:'Canada',age:25}
];
var obj={};
var data = res.map(({ name, place }) => {
  return ({ name, place })
});
console.log(data);

在这个示例代码中,我们使用.map方法来遍历res数组中的每个对象,并从中提取出name和place属性。然后,将提取的属性作为新的对象存储到一个名为data的数组中。最后,使用console.log()方法将data打印到控制台上。

通过使用.map方法,我们可以更容易地将对象存储到数组中,并提取所需的属性。这种方法可以简化代码,并使代码更易读和维护。

0
0 Comments

无法将对象存储到JavaScript数组中的问题是因为在循环中重复更新了同一个对象。解决方法是在for循环中将var obj={}移到内部,以便为每个循环创建不同的对象。

代码如下:

var res=[{name:'Alex',place:'US',age:20},{name:'Jason',place:'Canada',age:25}];
var data=[];
for ( let i in res){
    var obj={};
    obj.name=res[i].name;
    obj.place=res[i].place;
    data.push(obj);
}
console.log(data);

这段代码首先定义了一个对象数组res,其中包含了两个对象。然后,我们创建了一个空数组data来存储处理后的对象。

在for循环中,我们使用let i in res来遍历res数组中的每个对象。在每次循环中,我们使用var obj={}创建一个新的空对象obj

接着,我们将res[i]中的nameplace属性的值分别赋给objnameplace属性。

最后,我们将obj对象添加到data数组中。

通过将var obj={}移到for循环内部,我们确保了每次循环都创建了一个新的对象,并且成功将这些对象存储在data数组中。

最后,我们使用console.log(data)打印出处理后的对象数组data

0
0 Comments

在JavaScript中,无法将对象存储到数组中的问题通常由以下原因导致:你只有一个对象存储在内存中,使用var obj = {};这行代码只运行一次,并在内存中创建一个对象,然后你在for循环中的每次迭代中对其进行修改,并将其推送到数组中。最终,数组中包含对同一个对象的两个引用。

为了解决这个问题,可以在循环中创建对象:

for (let i in res){
    var obj = {};
    obj.name = res[i].name;
    obj.place = res[i].place;
    data.push(obj);
}

另一种解决方法是考虑使用.map

const res = [
  {name:'Alex',place:'US',age:20},
  {name:'Jason',place:'Canada',age:25}
];
const data = res.map(({ name, place }) => ({ name, place }));
console.log(data);

0