在数字数组中添加平均平滑数字
Add average smooth numbers inside an array of numbers
需要 google 应用程序脚本来平滑数字数组,通过使用 for 循环在该数组中添加具有多个因子的额外平滑数字。示例假设数组是 - myarray = ["1", "4","2", "1","5","2"];并且倍数为 1 那么数字的平滑数组应该是 - (1),2,3,(4),3,(2),(1),2,3,4,(5),4 ,3,(2)。在新数组中,括号中的数字是 myarray[] 中的数字,不在括号内的数字是平滑数字,需要添加到新的平滑数组中。逻辑是每个最近的项目都除以多个因子,并且应该添加到前一个项目的商直到 <= 到最近的项目。就像在 myarray[] 中假设倍数为 2 那么新数组应该是 -(1), 3,(4),(2),(1),3,(5),3,(2)。这里 myarray[] 中的第二个最近的项目是 4,所以 4 除以倍数 2,商 2 与我的 array[] 中的前一个项目 1 相加直到 <= 到最近的项目并按顺序这样做,以便新的通过添加平滑数字制成的数组。
顺滑
function smoooth() {
const arr = [1, 4, 2, 1, 5, 2];//original array
const sa = [];
arr.forEach((v, i, a) => {
let incr = a[i + 1] > v ? 1 : -1;
let n = Math.abs(a[i + 1] - v) - 1;
sa.push(v);
if (!isNaN(n)) {
[...Array.from(new Array(n).keys())].forEach(x => {
sa.push(sa[sa.length - 1] + incr);
});
}
});
Logger.log(JSON.stringify(sa));
return sa;
}
需要 google 应用程序脚本来平滑数字数组,通过使用 for 循环在该数组中添加具有多个因子的额外平滑数字。示例假设数组是 - myarray = ["1", "4","2", "1","5","2"];并且倍数为 1 那么数字的平滑数组应该是 - (1),2,3,(4),3,(2),(1),2,3,4,(5),4 ,3,(2)。在新数组中,括号中的数字是 myarray[] 中的数字,不在括号内的数字是平滑数字,需要添加到新的平滑数组中。逻辑是每个最近的项目都除以多个因子,并且应该添加到前一个项目的商直到 <= 到最近的项目。就像在 myarray[] 中假设倍数为 2 那么新数组应该是 -(1), 3,(4),(2),(1),3,(5),3,(2)。这里 myarray[] 中的第二个最近的项目是 4,所以 4 除以倍数 2,商 2 与我的 array[] 中的前一个项目 1 相加直到 <= 到最近的项目并按顺序这样做,以便新的通过添加平滑数字制成的数组。
顺滑
function smoooth() {
const arr = [1, 4, 2, 1, 5, 2];//original array
const sa = [];
arr.forEach((v, i, a) => {
let incr = a[i + 1] > v ? 1 : -1;
let n = Math.abs(a[i + 1] - v) - 1;
sa.push(v);
if (!isNaN(n)) {
[...Array.from(new Array(n).keys())].forEach(x => {
sa.push(sa[sa.length - 1] + incr);
});
}
});
Logger.log(JSON.stringify(sa));
return sa;
}