[英]How to check for equal property values in 2 Array of Objects in JavaScript?
[英]Check if Javascript Array Values are Sequential and Not Equal
您可以像这样使用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
函数使用三个参数调用传递给它的函数,用于数组的每个值。
它将继续调用函数,直到数组元素用完或对函数的任何调用返回一个假值。
您可以像这样使用简单的for-loop
function isSequential(data) { for (var i = 1, len = data.length; i < len; i++) { // check if current value smaller than previous value if (data[i] < data[i - 1]) { return false; } } return true; } console.log(isSequential([1])); console.log(isSequential([1, 2, 3, 4])); console.log(isSequential([1, 5, 3, 4])); console.log(isSequential([1451772000, 1451858400, 1452031200]));
这适用于任何长度并防止第一个元素检查。
function isSequential(array) { return array.every(function (a, i, aa) { return !i || aa[i - 1] < a; }); } document.write(isSequential([42]) + '<br>'); document.write(isSequential([1, 2, 3, 4]) + '<br>'); document.write(isSequential([1, 5, 3, 4]) + '<br>'); document.write(isSequential([1451772000, 1451858400, 1452031200]) + '<br>');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.