继续从数组添加项目直到结束循环

时间:2016-12-16 14:23:29

标签: javascript jquery html arrays object

我有一个这样的对象:

var Object = {
        "id": "Siplus",
        "name":"Siplus",
        "icon":"forum"
      },
      {
        "id": "Recent",
        "name":"Recent Activities",
        "icon": "restore"
      },
      {
        "id": "jobList",
        "name":"Job List",
        "icon": "briefcase"
      },
      {
        "id": "Favourites",
        "name":"Favourites",
        "icon": "star"
      },
      {
        "id": "searchQuote",
        "name":"Search Quotes",
        "icon": "binoculars"
      },
      {
        "id": "orderStatus",
        "name":"Order Status",
        "icon": "clock"
      };

我有另一个这样的数组

var array = [1,2,3];

我使用以下代码向对象添加数组值:

for (var i = 0; i < object.length; i++) {
    object[i].number = array[i];
  }

我得到的结果如下:

var Object = {
            "id": "Siplus",
            "name":"Siplus",
            "icon":"forum",
            "number":1
          },
          {
            "id": "Recent",
            "name":"Recent Activities",
            "icon": "restore",
            "number":2
          },
          {
            "id": "jobList",
            "name":"Job List",
            "icon": "briefcase",
            "number":3
          },
          {
            "id": "Favourites",
            "name":"Favourites",
            "icon": "star",
            "number":undefined
          },
          {
            "id": "searchQuote",
            "name":"Search Quotes",
            "icon": "binoculars",
            "number":undefined
          },
          {
            "id": "orderStatus",
            "name":"Order Status",
            "icon": "clock",
            "number":undefined
          };

我想这样:

var Object = {
            "id": "Siplus",
            "name":"Siplus",
            "icon":"forum",
            "number":1
          },
          {
            "id": "Recent",
            "name":"Recent Activities",
            "icon": "restore",
            "number":2
          },
          {
            "id": "jobList",
            "name":"Job List",
            "icon": "briefcase",
            "number":3
          },
          {
            "id": "Favourites",
            "name":"Favourites",
            "icon": "star",
            "number":1
          },
          {
            "id": "searchQuote",
            "name":"Search Quotes",
            "icon": "binoculars",
            "number":2
          },
          {
            "id": "orderStatus",
            "name":"Order Status",
            "icon": "clock",
            "number":3
          };

他们是否可以重复这个数字而不是“未定义”

请帮助我

5 个答案:

答案 0 :(得分:2)

你可以使用额外的var。

for (var i = 0, j = 0; i < object.length; i++) {
    j++
    if(j > array.length){j=0}
    object[i].number = array[j];
}

答案 1 :(得分:2)

由于模数计算

,您可以通过从数组中添加正确的值来映射输入对象

var data = [{
        "id": "Siplus",
        "name":"Siplus",
        "icon":"forum"
      },
      {
        "id": "Recent",
        "name":"Recent Activities",
        "icon": "restore"
      },
      {
        "id": "jobList",
        "name":"Job List",
        "icon": "briefcase"
      },
      {
        "id": "Favourites",
        "name":"Favourites",
        "icon": "star"
      },
      {
        "id": "searchQuote",
        "name":"Search Quotes",
        "icon": "binoculars"
      },
      {
        "id": "orderStatus",
        "name":"Order Status",
        "icon": "clock"
      }];
var array = [1,2,3];
res = data.map((x,i) => {
  x.number = array[i % array.length]
  return x;
})
console.log(res);

答案 2 :(得分:1)

array的大小为3而对象的大小为更多 - 可以使用解决方案:

object[i].number = array[i % array.length];

见下面的演示:

var object=[{"id":"Siplus","name":"Siplus","icon":"forum"},{"id":"Recent","name":"Recent Activities","icon":"restore"},{"id":"jobList","name":"Job List","icon":"briefcase"},{"id":"Favourites","name":"Favourites","icon":"star"},{"id":"searchQuote","name":"Search Quotes","icon":"binoculars"},{"id":"orderStatus","name":"Order Status","icon":"clock"}]

var array = [1, 2, 3];

for (var i = 0; i < object.length; i++) {
  object[i].number = array[i % array.length];
}

console.log(object);
.as-console-wrapper{top:0;max-height:100%!important;}

答案 3 :(得分:0)

您可以使用临时值指向数字数组,如下所示:

var temp = 0;
for (var i = 0; i < object.length; i++) {
    object[i].number = array[temp];
    if(temp == array.length)
         temp = 0;
    else
         temp++;
}

答案 4 :(得分:0)

var arrLength = array.length;
for (var i = 0, j = 0; i < object.length; i++, j++) {
    if (i >= arrLength ) {
        j = 0;
    }
    object[i].number = array[j];
}