# Common filter code
OneNET View 2.0 provides filters to personalize the data source, with which the user can write the JavaScript
code by himself to realize data structural transfer
, screen
and some simple calculation
. Some common filter codes will be listed herein for reference. In case of any problem during use, please raise it in the visual product communication group.
Generally, most of the results returned from data sources are of array type, and each element can be processed through iteration.
data.forEach((item, index) => {
// console.log('element:', item, '; subscript:', index);
});
// first([1, 2]); // -> 1
function first(arr) {
var len = arr ? arr.length : 0;
if (len) return arr[0];
}
// last([1, 2]); // -> 2
function last(arr) {
var len = arr ? arr.length : 0;
if (len) return arr[len - 1];
}
//Array maximum
function maxArr(arr) {
return Math.max.apply(null, arr);
}
//Array minimum
function minArr(arr) {
return Math.min.apply(null, arr);
}
// Encapsulation of the block, mainly for the array of numeric type
// sum
function sumArr(arr) {
return arr.reduce(function(pre, cur) {
return pre + cur;
});
}
//Array average. There may be several decimal places, which is not to be processed.
function covArr(arr) {
return this.sumArr(arr) / arr.length;
}
function randomOne(arr) {
return arr[Math.floor(Math.random() * arr.length)];
}
//ecDo.randomNumber(5,10)
//Return a random integer between 5-10, with 5 and 10 inclusive
//ecDo.randomNumber(10)
//return a random integer between 0-10, with 0 and 10 inclusive
//ecDo.randomNumber()
//return a random integer between 0-255, with 0 and 255 inclusive
function randomNumber(n1, n2) {
if (arguments.length === 2) {
return Math.round(n1 + Math.random() * (n2 - n1));
} else if (arguments.length === 1) {
return Math.round(Math.random() * n1);
} else {
return Math.round(Math.random() * 255);
}
}
/**
* @param timestamp time stamp
**/
function formatDate(timestamp) {
var date = new Date(timestamp); //The 10-bit time stamp is to be multiplied by 1000 and the 13-bit one is not to be multiplied by 1000.
var Y = date.getFullYear() + '-';
var M =
(date.getMonth() + 1 < 10
? '0' + (date.getMonth() + 1)
: date.getMonth() + 1) + '-';
var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
var h =
(date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
var m =
(date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) +
':';
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
return Y + M + D + h + m + s;
}
//ecDo.getEleCount('asd56+asdasdwqe','a')
//result:3
//ecDo.getEleCount([1,2,3,4,5,66,77,22,55,22],22)
//result:2
function getEleCount(obj, ele) {
var num = 0;
for (var i = 0, len = obj.length; i < len; i++) {
if (ele === obj[i]) {
num++;
}
}
return num;
}
//var arr=[{a:1,b:2,c:9},{a:2,b:3,c:5},{a:5,b:9},{a:4,b:2,c:5},{a:4,b:5,c:7}]
//ecDo.arraySort(arr,'a,b'), wherein a is the first sorting condition and b the second sorting condition
//result:[{"a":1,"b":2,"c":9},{"a":2,"b":3,"c":5},{"a":4,"b":2,"c":5},{"a":4,"b":5,"c":7},{"a":5,"b":9}]
function arraySort(arr, sortText) {
if (!sortText) {
return arr;
}
var _sortText = sortText.split(',').reverse(),
_arr = arr.slice(0);
for (var i = 0, len = _sortText.length; i < len; i++) {
_arr.sort(function(n1, n2) {
return n1[_sortText[i]] - n2[_sortText[i]];
});
}
return _arr;
}
// arrayReverse([3,2,1,4]) // [4, 1, 2, 3]
function arrayReverse(arr) {
var len = arr ? arr.length : 0;
if (len) return arr.reverse();
}