我有以下数据结构,它使用标志动态设置最后一项:
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; }
或者您可以过滤数组并连接 false
和 true
子数组的两个部分。
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/