Javascript 将数组合并到对象和对象合并到数组

Javascript 将数组合并到对象和对象合并到数组,javascript,arrays,json,Javascript,Arrays,Json,所以我这里有一个棘手的问题: 我从这个函数中得到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(fun

所以我这里有一个棘手的问题:

我从这个函数中得到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"
      }
[
[
    ...
],[
    ...
],[
    ...
],[
    ...
],[
    ...
]
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 mainArray = [];

for (i = 0; i < name.length; i++) {
    var o = {};
    o.name = name[i];
    o.color = color[i];
    mainArray.push([o])
}
var mainArray=[];
对于(i=0;i
据我所知,您希望这样做

     {
        "name": "deutsch",
        "color": "red"
      },
      {
        "name": "mathe",
        "color": "blue"
      },
      {
        "name": "sport",
        "color": "darkblue"
      },
      {
        "name": "franz",
        "color": "yellow"
      }
[
[
    ...
],[
    ...
],[
    ...
],[
    ...
],[
    ...
]
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 res=[],
数据={};
对于(变量i=0;i<5;i++){
data=$('.lesson space:eq('+i+')>.lesson').map(函数(){
变量名称=$(this.data('name');
var color=$(this.data('color');
如果(!name | |!color){
返回null;
}
返回{
姓名:姓名,,
颜色:颜色
}
}).get();
res.push(数据);
}

我不确定我是否正确理解了您的需求,但我认为这正是您需要的

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结果=[];
对于(变量i=0;i<5;i++){
result.push($('.lessource space:eq('+i+')>.lessource').get().map(function()函数){
返回{
名称:$(this).data('name'),
颜色:$(this.data('name'))
};
}));
}
控制台日志(结果);

下划线或低破折号可以帮助您更轻松地实现这一点。。。如果您不介意添加依赖项,那么为什么要在对象和数组结构之间来回切换呢?或者您想将5个对象放在一个数组中,而另一个数组中的对象又在另一个数组中?您必须将.get()放在末尾:)