javascript - JavaScript 中的最后一个 boolean 标志

标签 javascript for-loop boolean flags

我有以下数据结构,它使用标志动态设置最后一项:

    var data = [
        {
            "id":"One",
            "last":false,    
        },
        {
            "id":"Two",
            "last":true,    
        },
        {
            "id":"Three",
            "last":false,    
        },
        {
            "id":"Four",
            "last":false,    
        },
        {
            "id":"Five",
            "last":false,    
        }
    ];

    for (var i = 0; i < data.length; i++) {
        console.log(data[i].id);
    }

我如何利用 boolean 值以便代码按此顺序输出到日志?

One
Three
Four
Five
Two

最佳答案

您可以按last 属性对数据进行排序。

Array#sort没有必要stable .在这种情况下,请参见下文。

var data = [{ id: "One", last: false }, { id: "Two", last: true }, { id: "Three", last: false }, { id: "Four", last: false }, { id: "Five", last: false }];

data.sort(function (a, b) {
    return a.last - b.last;
});

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

或者您可以过滤数组并连接 falsetrue 子数组的两个部分。

function last(flag) {
    return function (a) {
        return a.last === flag;
    };
}

var data = [{ id: "One", last: false }, { id: "Two", last: true }, { id: "Three", last: false }, { id: "Four", last: false }, { id: "Five", last: false }],
    temp = data.filter(last(false)).concat(data.filter(last(true)));

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

关于javascript - JavaScript 中的最后一个 boolean 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43292363/

相关文章:

javascript - 如何删除输入字段的边框底部?

javascript - Firefox 不渲染整个 CSS 文档

javascript - 为什么这个 for() 循环不起作用?

java - boolean 测试用例在应该通过时失败了

Javascript 选择选项在值之前始终显示 '0'

Javascript 工具提示跨浏览器兼容性

python - 如何优化一个 numpy 循环,该循环对一个数组中的值求和,该数组由另一个数组索引,其中值等于循环索引

javascript - 在 JavaScript For 循环期间更新 DOM

c# - 具有强绑定(bind)模型 MVC 的 ASP.NET MVC 是/否单选按钮

SQL Server - boolean 文字?