The declaration syntax for a DECIMAL column is DECIMAL(M,D). The ranges of values for the arguments are as follows:
M is the maximum number of digits (the precision). It has a range of 1 to 65.
D is the number of digits to the right of the decimal point (the scale). It has a range of 0 to 30 and must be no larger than M.
function sum(arr) {
var val = arr.pop();
if( !val ) return 0;
if( Array.isArray(val)) return sum(val) + sum(arr);
return val + sum(arr);
}
let array = [];
// так как sum_2 уничтожает исходный массив, для адекватности
// добавил переинициализацию массива исходных данных
function sum_1(arr) {
if (!arr.length) {
return 0;
}
let val = arr[0];
if (val instanceof Array) {
val = sum_1(val);
}
return val + sum_1(arr.slice(1));
}
function sum_2(arr) {
var val = arr.pop();
if (!val) return 0;
if (Array.isArray(val)) return sum_2(val) + sum_2(arr);
return val + sum_2(arr);
}
console.time('init array');
for (let i = 0; i < 1000; i++) {
array = [
[1, 4],
[11],
[3, 5, 7]
];
}
console.timeEnd('init array');
console.time('eval');
for (let i = 0; i < 1000; i++) {
array = [
[1, 4],
[11],
[3, 5, 7]
];
eval(JSON.stringify(array).replace(/[^\d]+/g, '+') + '0') // 31
}
console.timeEnd('eval');
console.time('sum recursion 1');
for (let i = 0; i < 1000; i++) {
array = [
[1, 4],
[11],
[3, 5, 7]
];
sum_1(array);
}
console.timeEnd('sum recursion 1');
console.time('sum normal');
for (let i = 0; i < 1000; i++) {
array = [
[1, 4],
[11],
[3, 5, 7]
];
[].concat.apply([], array).reduce(function(res, item) {
return res + item;
})
}
console.timeEnd('sum normal');
console.time('sum recursion 2');
for (let i = 0; i < 1000; i++) {
array = [
[1, 4],
[11],
[3, 5, 7]
];
sum_2(array);
}
console.timeEnd('sum recursion 2');
[].concat.apply([], array).reduce(function (res, item) { return res + item; })
const array = [
[1,4],
[11],
[3,5,7]
];
function sum(arr) {
if (!arr.length) {
return 0;
}
let val = arr[0];
if (val instanceof Array) {
val = sum(val);
}
return val + sum(arr.slice(1));
}
console.time('eval');
for (let i = 0; i < 1000; i++) {
eval(JSON.stringify(array).replace(/[^\d]+/g, '+') + '0') // 31
}
console.timeEnd('eval');
console.time('sum recursion');
for (let i = 0; i < 1000; i++) {
sum(array);
}
console.timeEnd('sum recursion');
console.time('sum normal');
for (let i = 0; i < 1000; i++) {
[].concat.apply([], array).reduce(function (res, item) { return res + item; })
}
console.timeEnd('sum normal');
eval: 44.69287109375ms
sum recursion: 2.64501953125ms
sum normal: 0.951904296875ms
eval(JSON.stringify(array).replace(/[^\d]+/g, '+') + '0') // 31
const a = [1, 2, [3, 4, [[5, 6], 7], 8]];
// Вжух! и получится строка:
"+1+2+3+4+5+6+7+8+"
let json = await (await fetch("https://www.google.ru/", {
mode: "no-cors"
})).json();
console.log(json);
filterElements = (elements, filter) => {
return elements = elements.filter((el) => {
return el.charAt(0).toLowerCase() === filter.trim().toLowerCase();
});
}
filterElements = (elements, filter) => {
return elements = elements.filter((el) => {
return el.toLowerCase().startsWith(filter.trim().toLowerCase());
});
}