在javascript中过滤和减少对象

时间:2017-07-12 15:48:35

标签: javascript

我不确定如何做到这一点,我有一个包含多个对象的对象。它看起来像这样:

object {
    apps: {
       apps1: {
           date: "2017-07-05T17:13:53.956Z",
           status: false
              }
          },
       apps2: {
            date: "2017-07-11T15:15:39.027Z",
            status: false
              },
       apps3: {
            date: "2017-07-11T15:36:33.063Z",
            status: true
              }
       }

现在我想先按日期对它们进行排序:

function getAppStatus(user) {
  let newArr = Object.keys(user.apps).reduce(function(a, b) {
    return user.apps[a].date > user.apps[b].date ? a : b;
  });

但我只想对那个status === false的那个进行排序,所以基本上我想删除apps3,如果状态为真,然后按日期对其余部分进行排序。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

尝试类似

的内容
<head>
    <meta name="layout" content="main"/>
    <g:javascript library='jquery' plugin='jquery' />
</head>
<script type="text/javascript">
    function addRow(){
        $.ajax({
            url: "${g.createLink(controller: 'Controller', action:'nextAction')}" ,
            type: 'POST',
            data: {index: getNextIndex},
            update: "next-row",
            success:function(data,textStatus){
                jQuery('#next-row').html(data);
                getReadyForNextRow();
            }
        });
    }
    function getNextIndex(){
        return 0;
    }
    function getReadyForNextRow(){
        var $span = $('#next-row');
        var $copy = $span.clone();
        $span.removeAttr('id');
        $copy.html('');
        $copy.insertAfter($span);
        var $Count = $('#count');
        $Count.val(parseInt($Count.val())+1);
    }
</script>
<div>
    <g:hiddenField name="Count" value="${outsideLocations.size()}" id = "count"/>
    <div class="buttons">
        <g:actionSubmit class="add" value="Add Row" onclick="addRow(); return false;"/>
    </div>
    <span id = "next-row"></span>
</div>