我正在尝试返回一个包含50个元素的对象数组
这就是我想要实现的目标
arrayofobject = [
{
id:0,
Email: "Empty Email 0",
Name: "Empty Name 0"
},
{
id:1,
Email: "Empty Email 1",
Name: "Empty Name 1"
}
............
{
id:49,
Email: "Empty Email 49",
Name: "Empty Name 49"
}
]
我使用了下面的代码,但仍然无法实现结果
var arrayofobject = []
for(var i = 0; i<=50; i++){
arrayofobject.push("id" + i)
arrayofobject.push("email" + i)
arrayofobject.push("name" + i)
}
我尝试了不同的approch,但我仍然很难得到所需的结果
答案 0 :(得分:8)
这应该适合你:
var objects = [];
var n = 0;
while( n < 50 ){
objects.push({
id: n,
email: 'email' + n,
name: 'name' + n,
});
n++;
}
console.log(objects);
答案 1 :(得分:6)
var arrayOfObjects = [];
for (var i = 0; i < 50; i++) {
var newObj = {
id: i,
email: "Empty email " + i,
name: "Empty name " + i
}
arrayOfObjects.push(newObj);
}
console.log(arrayOfObjects);
答案 2 :(得分:5)
在这种情况下使用array.from
最好的方法
const result = Array.from({ length: 50 }, (x, z) => [
{ id: z }, { email: "Empty User " + z },{name: "Empy Name " + z}
]);
console.log(result)
答案 3 :(得分:3)
let arrayofobject=[];
for(var i = 0; i<50; i++){
let a = {};
a.id = "id"+i;
a.email = "email"+i;
a.name = "name"+i;
arrayofobject.push(a);
}
console.log(arrayofobject);
&#13;
答案 4 :(得分:3)
你正在推动个人价值观。你想要的是一个对象数组。
在ES5及更早版本中:
var arrayofobject = [];
for(var i = 0; i < 50; i++){ // Note <, not <=, if you want 0-49
arrayofobject.push({
id: i,
email: "Empty Email " + i,
name: "Empty Name " + i
});
}
console.log(arrayofobject);
.as-console-wrapper {
max-height: 100% !important;
}
在ES2015 +中,你可以使用Array.from
的回调(它也可以是polyfilled):
let arrayofobject = Array.from({length: 50}, (_, i) => {
return {
id: i,
email: "Empty Email " + i,
name: "Empty Name " + i
};
});
console.log(arrayofobject);
.as-console-wrapper {
max-height: 100% !important;
}
或简洁的功能体:
let arrayofobject = Array.from({length: 50}, (_, i) => ({
id: i,
email: "Empty Email " + i,
name: "Empty Name " + i
}));
console.log(arrayofobject);
.as-console-wrapper {
max-height: 100% !important;
}
答案 5 :(得分:1)
如果您只想i<50
到i<=50
,那么您的情况应为id
,而不是49
。此外,您需要创建一个包含这些属性的对象,并将其推送到arrayofobject
数组,如下所示:
var arrayofobject = []
for(var i = 0; i<50; i++){
var obj = {};
obj["id"] = i;
obj["Email"] = "Empty Email " + i;
obj["Name"] = "Empty Name " + i;
arrayofobject.push(obj);
}
console.log(arrayofobject);
&#13;
答案 6 :(得分:1)
您目前正在通过迭代推送3个对象。
arrayofobject.push("id" + i) //Add 1 element
arrayofobject.push("email" + i)//Add 1 element
arrayofobject.push("name" + i)//Add 1 element
你应该只按下一个对象
var arrayofobject = []
for (var i = 0; i <= 49; i++) {
arrayofobject.push({
id: i,
Email: "Empty Email " + i,
Name: "Empty Name " + i
});
}
console.log(arrayofobject)
&#13;
答案 7 :(得分:1)
var arrayList = [];
var uptoCount = 50;
for (var i = 0; i < uptoCount; i++) {
var tempObj = {
id: i,
email: "Empty email " + i,
name: "Empty name " + i
}
arrayList.push(tempObj);
}
console.log(arrayList);
答案 8 :(得分:0)
另一种干净的解决方案是使用数组fill
和map
:
arr = Array(50).fill(0).map((val, index) => ({
id: val + index,
Email: "Empty Email " + (val + index),
Name: "Empty Name " + (val + index)
}));
console.log(arr);
但是如果你正在制作高性能的JS应用程序,并且如果你使用大/大数组,那么Array.map(..)
会在内存和处理器使用方面产生很大的重载,因为它会创建一个数组副本。
建议使用经典For loop
,与其他人一样。