我读过这个,但它不适用(和/或,我无法弄清楚如何调整解决方案).我也找到了这个,但我不想改变数组 - 我只想查看信息.我无法调整解决方案以满足我的需求.
我想找出Javascript数组中的值是顺序的.
例如 - 我有一组UNIX时间戳
var ts = [1451772000, 1451858400, 1452031200]
true
如果它们是顺序的(从低到高的值)并且false
它们不是顺序的,我想返回.false
如果有重复值,我还想返回.
你可以Array.prototype.every
像这样使用
var data = [1451772000, 1451858400, 1452031200]; console.log(data.every((num, i) => i === data.length - 1 || num < data[i + 1]));
这可以用正常函数编写,就像这样
console.log(data.every(function(num, index) { return index === data.length - 1 || num < data[index + 1]; }));
这里基本上只有两个条件需要注意
如果我们到达最后一个索引,那么所有元素都是好的.
如果它不是最后一个元素,那么当前数字应该严格小于下一个元素.
该表达式处理上述两个条件.
i === data.length - 1 || num < data[i + 1]
该every
函数使用三个参数调用传递给它的函数,用于数组的每个值.
当前元素,
目前的指数
实际的数组
它将继续调用函数,直到数组元素用完或对函数的任何调用返回一个假值.