我如何迭代这个数组?

荷兰王子

我在一个数组中有一个数组,我需要从中获取数据。

我必须将每个索引内的事件数组作为一个数组,并将事件数组作为索引。

这是我的尝试:

//array

    var events = {
    "events": [{
        "id": 3,
        "user_id": "48f8fd57-5116-419c-b43a-cff90a4ae39b",
        "event_id": 102,
        "created_at": "2019-06-13 20:46:40",
        "updated_at": "2019-06-13 20:46:40",
        "events": [{
            "id": 102,
            "title": "asdsadsa",
            "description": "dsadsadsa",
            "url": "asdsad",
            "color": "#000000",
            "start": "2019-06-04 08:30:00",
            "end": "2019-06-04 13:00:00"
        }]
    }, {
        "id": 9,
        "user_id": "48f8fd57-5116-419c-b43a-cff90a4ae39b",
        "event_id": 108,
        "created_at": "2019-06-14 10:41:13",
        "updated_at": "2019-06-14 10:41:13",
        "events": [{
            "id": 108,
            "title": "GC",
            "description": "FDGDFGDFG",
            "url": "DFGFDG",
            "color": "#000000",
            "start": "2019-06-25 22:00:00",
            "end": "2019-06-29 22:00:00"
        }]
    }]
}

    // events = this array
    var parseEvents = function(events) {
            var eventArray = [];

            jQuery.each(events, function(index, item) {
                eventArray.push(item['events']);
            });

            return (eventArray);
        }

     console.log(parseEvents(events));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

结果应该是:

{ 1 //index : [{
        "id": 102,
        "title": "asdsadsa",
        "description": "dsadsadsa",
        "url": "asdsad",
        "color": "#000000",
        "start": "2019-06-04 08:30:00",
        "end": "2019-06-04 13:00:00"
    }],
2: [{
        "id": 102,
        "title": "asdsadsa",
        "description": "dsadsadsa",
        "url": "asdsad",
        "color": "#000000",
        "start": "2019-06-04 08:30:00",
        "end": "2019-06-04 13:00:00"
    }],
}

像这样,我希望事件数组中的每个事件数组都是一个索引

如何从每个索引中获取数组事件并推送到数组。

TJ克劳德

假设您想要所有事件的单个数组,没有理由为此使用 jQuery,只需使用 JavaScript 标准库。

在 ES5 中:

var parseEvents = function(events) {
    var eventArray = [];
    events.events.forEach(function(item) {
        eventArray.push.apply(eventArray, item.events);
    });
    return eventArray;
};

您的events对象具有一个events属性,属性是具有属性的对象数组events,因此上述循环遍历这些对象并将其事件推送到eventArray. 这一行:

eventArray.push.apply(eventArray, item.events);

有效地调用eventArray.push(event, event, event, event)了与item.events. 有关详细信息,请参阅applyMDN

现场示例:

var events = {
  "events": [{
    "id": 3,
    "user_id": "48f8fd57-5116-419c-b43a-cff90a4ae39b",
    "event_id": 102,
    "created_at": "2019-06-13 20:46:40",
    "updated_at": "2019-06-13 20:46:40",
    "events": [{
      "id": 102,
      "title": "asdsadsa",
      "description": "dsadsadsa",
      "url": "asdsad",
      "color": "#000000",
      "start": "2019-06-04 08:30:00",
      "end": "2019-06-04 13:00:00"
    }]
  }, {
    "id": 4,
    "user_id": "48f8fd57-5116-419c-b43a-cff90a4ae39b",
    "event_id": 103,
    "created_at": "2019-06-13 20:46:45",
    "updated_at": "2019-06-13 20:46:45",
    "events": [{
      "id": 103,
      "title": "asdsad",
      "description": "sadsad",
      "url": "",
      "color": "#000000",
      "start": "2019-06-04 08:30:00",
      "end": "2019-06-04 13:00:00"
    }]
  }]
}

var parseEvents = function(events) {
    var eventArray = [];

    events.events.forEach(function(item) {
        eventArray.push.apply(eventArray, item.events);
    });
    return eventArray;
};

console.log(parseEvents(events));

在 ES2015+ 中更清楚:

const parseEvents = function(events) {
    const eventArray = [];
    for (const item of events.events) {
        eventArray.push(...item.events);
    }
    return eventArray;
};

这用于for-of循环events.events并传播符号以将所有条目推item.events送到eventArray.

现场示例:

const events = {
  "events": [{
    "id": 3,
    "user_id": "48f8fd57-5116-419c-b43a-cff90a4ae39b",
    "event_id": 102,
    "created_at": "2019-06-13 20:46:40",
    "updated_at": "2019-06-13 20:46:40",
    "events": [{
      "id": 102,
      "title": "asdsadsa",
      "description": "dsadsadsa",
      "url": "asdsad",
      "color": "#000000",
      "start": "2019-06-04 08:30:00",
      "end": "2019-06-04 13:00:00"
    }]
  }, {
    "id": 4,
    "user_id": "48f8fd57-5116-419c-b43a-cff90a4ae39b",
    "event_id": 103,
    "created_at": "2019-06-13 20:46:45",
    "updated_at": "2019-06-13 20:46:45",
    "events": [{
      "id": 103,
      "title": "asdsad",
      "description": "sadsad",
      "url": "",
      "color": "#000000",
      "start": "2019-06-04 08:30:00",
      "end": "2019-06-04 13:00:00"
    }]
  }]
}

const parseEvents = function(events) {
    const eventArray = [];
    for (const item of events.events) {
        eventArray.push(...item.events);
    }
    return eventArray;
};

console.log(parseEvents(events));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

你如何迭代这个数组?我知道这是非常基本的

来自分类Dev

我如何从这个起始数组创建这个数组?

来自分类Dev

我如何组织这个数组

来自分类Dev

我如何弄清楚这个数组/循环

来自分类Dev

我如何操作这个数组中的数据?javascript

来自分类Dev

我如何从这个数组中获取 orderId?

来自分类Dev

如何实现这个数组

来自分类Dev

如何旋转这个数组

来自分类Dev

如何建立这个数组?

来自分类Dev

如何使用 if 这个数组

来自分类Dev

我在用这个数组做错什么?

来自分类Dev

我怎么称呼这个数组?

来自分类Dev

我需要循环这个数组

来自分类Dev

我如何将这个数组重组为结构不同的数组

来自分类Dev

如何解析这个数组

来自分类Dev

如何解决这个数组?

来自分类Dev

如何循环到这个数组

来自分类Dev

如何修复遍历这个数组列表?

来自分类Dev

给定这个数组,我如何重新格式化它看起来像这样

来自分类Dev

我如何 foreach 这个数组结果并在 codeigniter 视图中回显

来自分类Dev

我如何迭代地添加键/值对,其中每个值都是一个数组?

来自分类Dev

如何用函数中的对象填充数组,而我在主函数中声明了这个数组?

来自分类Dev

为什么我不能对这个数组进行排序?

来自分类Dev

这个数组联接如何产生字符串?

来自分类Dev

理解这个double如何成为一个数组?

来自分类Dev

如何在 ruby 中对这个数组进行排序?

来自分类Dev

如何用这个解构一个数组

来自分类Dev

如何配对这个数组的内容而不重复?

来自分类Dev

如何在 Big Query 中正确 UNNEST 这个数组?