Встраивание javascript в Power Query через функцию Web.Page
Содержание задачи:
- a = "100,500,0,0,2000,0,1000" ; - строка
- b = 1000; - число
- delim = " , " ;
- Найти: result (т.е. в переменной result должна получиться после вычислений новая строка "0,0,0,0,1600,0,1000")
алгоритм решения простыми словами:
- переменную а преобразую в массив arr (переменная delim используется в преобразовании);
- создаю новый массив newarr, куда будут добавляться новые значения;
- от значения переменной b (1000) вычитаю первый элемент массива arr, получается 900 (положительная разность), поэтому значение первого элемента массива newarr равно 0, значение переменной b равно 900;
- от значения переменной b (900) вычитаю второй элемент массива arr, получается 400 (положительная разность), поэтому значение второго элемента массива newarr равно 0,значение переменной b равно 400;
- в результате вычислений с третьим и четвертым элементом массива arr получаем значения равные 0 (т.е. без изменений);
- пятый элемент массива newarr получает абсолютное значение 1600,значение переменной b равно о и вычисления прерываются;
- провожу конкатенацию массивов: newarr и arr (шестого и седьмого элемента)
Но я не могу увидеть результат в Power Query. При разворачивании таблицы отсутствует элемент BODY. В чем причина его отсутствия?
**
let fx=(a as text, b, delim as text)=>
Web.Page(
"<script>
var x = '"& a &"';
var y = '"& Text.From(b) &"';
var z = '"& delim &"';
var arr = x.split(z);
var arrnew = [];
if (y > 0) {
for (let i of arr) {
if ((y-i) < 0) {
i = -(y-i);
arrnew.push(i);
break;
}
y = y-i;
i = 0;
arrnew.push(i);
}
}
arr.splice(0, arrnew.length);
var result = arrnew.concat(arr).join(z);
document.write(result);
</script>")
in
fx
**
Источник: Stack Overflow на русском