簡體   English   中英

合並數組到對象和對象到數組

[英]Merge arrays to object and object to array

因此,我這里有些棘手的問題:

我從這個函數得到5x2數組

for (var i = 0; i < 5; i++) {
    var name = $('.lesson-space:eq( ' + i + ' ) > .lesson').map(function(){return $(this).data('name');}).get();
    var color = $('.lesson-space:eq( ' + i + ' ) > .lesson').map(function(){return $(this).data('color');}).get();
  };

對於這5個重復中的每個重復,我想將兩個數組放入這樣的對象中

     {
        "name": "deutsch",
        "color": "red"
      },
      {
        "name": "mathe",
        "color": "blue"
      },
      {
        "name": "sport",
        "color": "darkblue"
      },
      {
        "name": "franz",
        "color": "yellow"
      }

這些對象現在應該放入數組中。 因此,最終我希望將5個數組(從第一個代碼片段中刪除)放入這樣的數組中

[
[
    ...
],[
    ...
],[
    ...
],[
    ...
],[
    ...
]

]

我知道這有點復雜...

據我了解,你想做這樣的事情

var res  = [],
    data = {}; 

for (var i = 0; i < 5; i++) {

  data = $('.lesson-space:eq( ' + i + ' ) > .lesson').map(function () {
    var name  = $(this).data('name');
    var color = $(this).data('color');

    if (!name || !color) {
      return null;
    }

    return {
      name:  name,
      color: color
    }
  }).get();

  res.push(data);
}

我不確定我是否正確理解了您的要求,但是我認為這就是您想要的

var result = [];
for (var i = 0; i < 5; i++) {
    result.push($('.lesson-space:eq('+i+') > .lesson').get().map(function(){
        return {
            name: $(this).data('name'),
            color: $(this).data('name')
        };
    }));
}

console.log(result);

這應該工作

var mainArray = [];

for (i = 0; i < name.length; i++) {
    var o = {};
    o.name = name[i];
    o.color = color[i];
    mainArray.push([o])
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM