如何返回50的数组

时间:2018-03-27 09:03:39

标签: javascript jquery arrays

我正在尝试返回一个包含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,但我仍然很难得到所需的结果

9 个答案:

答案 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)

&#13;
&#13;
   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;
&#13;
&#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<50i<=50,那么您的情况应为id,而不是49。此外,您需要创建一个包含这些属性的对象,并将其推送到arrayofobject数组,如下所示:

&#13;
&#13;
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;
&#13;
&#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

你应该只按下一个对象

&#13;
&#13;
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;
&#13;
&#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)

另一种干净的解决方案是使用数组fillmap

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,与其他人一样。